NB.SI dans une plage variable

Bonjour à tous,

Parcourant depuis quelque temps ce forum et y trouvant le plus souvent la résolution de mes difficultés, je franchis aujourd'hui le pas et poste mon premier propre message. En effet, je n'y ai pas trouvé mon problème évoqué.

J'ai un tableau avec en colonnes chaque mois de l'année et sur les lignes des valeurs.

Je cherche une formule me permettant de compter le nombre de valeurs différentes de 0 pour un mois donné (mais qui peut varier).

Comment faire ?

Ne sachant pas si mes explications sont très claires, je joins un tableau simplifié pour exemple.

Merci de votre aide.

Et une petite question subsidiaire :

Sur l'onglet Feuil2, j'ai le même cas avec des sous-totaux et des totaux ; si une formule existe pour mon problème initial, est-il possible de le faire sans prendre en compte les lignes "Sous-Total" ou "Total" ?

Bonsoir Totor 41

A Tester

=NB.SI(B3:B12;"<>0")

= 4

=Nombre cellules Si B3:B8 différentes de zéro

Adapter la formule en fonction de la plage

Amicalement

Papy Pierrot

Bonsoir Pierre,

Merci pour ta réponse.

Toutefois, mon souhait (si cela est possible) serait justement d'avoir une seule formule, quel que soit le mois concerné : j'indique dans une cellule le mois en question, et la formule me compte les valeurs que je cherche en fonction de ce mois-là.

Je me dis qu'il y a peut-être une possibilité en bidouillant avec INDEX ou EQUIV, ou autre, mais j'ai beau avoir fait plusieurs tentatives, je n'arrive à rien

De même pour ma question subsidiaire (mais déjà que je ne suis pas sûr que ma première ambition soit réalisable, alors celle-là, j'avoue avoir un gros doute) :

Je voudrais justement que ne soient pas pris en compte les totaux. J'ai bien la possibilité d'ajouter -2 à la formule, mais il peut arriver que le sous-total soit égal à 0...

Bonsoir,

Dans la solution proposée, les cellules d'en-tête ont été nommées (Janvier, Février, etc. ..voir dans Formules > Gestionnaire de noms).

Chaque plage correspondant à un mois est définie avec la formule

DECALER(INDIRECT(I2);1;;NBVAL(A:A)-4)

Pour connaitre la dimension de la plage, à partir de la cellule nommée on compte le nombre de cellules de la colonne A et on enlève les 4 cellules correspondant au Sous/total 1, A', B' et et Total.

La plage étant connue, il reste à compter le nombre de cellules de cette plage qui ne contiennent pas 0.

=NB.SI(DECALER(INDIRECT(I2);1;;NBVAL(A:A)-4);"<>0")

391exemple-tableau.xlsx (10.07 Ko)

A+

Pétard ! Ça fonctionne !

Bon, là, je fais le test sous excel 2003, donc je réessaierai demain avec 2007 pour comprendre comment fonctionne la formule, mais en tout cas, ça marche.

Merci !

Je n'ai jamais bien compris DECALER, et ne connaissais pas INDIRECT. Merci de m'avoir ouvert cette nouvelle possibilité.

Bon, en revanche - et ça, c'est uniquement pour faire mon chieur - ça ne résout en fait pas ma question subsidiaire...

En effet, dans mon exemple, je voudrais compter à la fois de A à F ("nom" de mes lignes), mais aussi A' et B'. Or, là, ta solution les exclue. Pour le mois de Mars, par exemple, je souhaiterais obtenir 2, là où ta formule indique 0.

Mais ça ne restait qu'une question subsidiaire, merci vraiment pour cette solution que tu m'as fournie.

Et merci aussi à ceux qui, même s'ils n'ont pas posté, se sont penchés sur ce problème

Il suffit de rajouter suivant le même principe la prise en compte des 2 lignes qui suivent Sous_Total_1

A+

Après nouvelle étude de la formule et quelques tests, non seulement, ça fonctionne, mais en plus, j'ai l'impression d'en avoir compris la construction et la logique.

Merci encore !

Bonjour, Totor 41, bonjour Frangy

Heureux que tout se termine bien.

Bonne journée.

Pierrot

Rechercher des sujets similaires à "plage variable"