Résolu Excel Comptabiliser des lignes en fonction de différents critères

  • Auteur de la discussion GTmacrodeb
  • Date de début

GTmacrodeb

Expert
Bonjour à toute la communauté, je vous sollicite car j’ai quelques difficultés à choisir et rédiger une formule.
J’ai un tableau sous une feuille Excel avec un titre en ligne 1, les titres des différentes colonnes en ligne 2. Les données sont donc renseignées à partir de la ligne 3.
Dans ce tableau, je souhaite comptabiliser des données vérifiant certaines conditions.
Ma première difficulté réside dans le choix de la formule à utiliser.
Exemple 1 : je souhaite comptabiliser le nombre de cellules pour lesquelles 2017 correspond à l’année dans la date renseignée en colonne G et qui dans le même temps ont la valeur « VRAI » en colonne O.
Dans un premier temps, j’ai cherché à éditer la formule qui me permette de comptabiliser le nombre de cellules dont l’année est 2017 en colonne G. Après avoir essayé de différentes façons (NB.SI, SOMMEPROD), j’ai réussi à rédiger cette formule qui fonctionne : =SOMMEPROD((ANNEE('Feuil1'!G3:G1048576)=2017)*1)
J’aurais souhaité « simplifier » cette formule avec =SOMMEPROD((ANNEE('Feuil1'!G:G)=2017)*1) mais cela ne fonctionne pas, du fait des titres je suppose. Existe-t-il un moyen de désigner la colonne G dans cette formule en retirant éventuellement les 2 premières lignes ?
Ensuite, j’ai donc souhaité développer cette formule pour répondre à mon exemple : =SOMMEPROD((ANNEE('Feuil1'!G3:G1048576)=2017)*('Feuil1'!O3:O1048576)="VRAI") mais cette formule ne fonctionne pas. On me renvoie la valeur 0.
J’ai donc essayé de me concentrer sur la 2e partie de la formule mais je ne parviens pas à la rédiger avec la fonction SOMMEPROD. Par contre, je parviens à la rédiger avec la fonction NB.SI :
=NB.SI(('Feuil1'!O3:O1048576);"VRAI")
Je suis donc un peu « perdu » sur la méthodologie à adopter.
Merci d’avance à toute personne qui pourra m’apporter des conseils sur ce sujet.
 

GTmacrodeb

Expert
En complément de mon mail précédent, et suite à mes recherches sur le net, je pense qu'il faut privilégier la solution SOMMEPROD.

J'ai donc cette formule à proposer mais malheureusement qui ne fonctionne pas :
XML:
=SOMMEPROD((ANNEE('Feuil1'!G3:G1048576)=2017)*1*('Feuil1'!O3:O1048576)="VRAI")
 

balthazar14

Expert
Bonjour

"vrai" dans ce cas est une valeur alpha numérique, or ce qui est retourné dans la cellule de test est le résultat de la fonction logique Vrai().
Donc remplace "vrai" par VRAI ou VRAI().
Désolé je n'ai pas le temps de tester maintenant, mais tiens nous au courant
Bon courage.
 

GTmacrodeb

Expert
Bonjour,

Et tout d'abord merci de prendre le temps de m'aider.

Je n'ai pas trop compris ton message sur la valeur VRAI.

Pour apporter donc quelques précisions, VRAI est une valeur qui est renseignée manuellement dans ce tableau et qui ne fait appel à aucune formule.

J'ai fait le test en remplaçant par :
XML:
="VRAI()"
ou
XML:
=VRAI()
mais cela n'a pas fonctionné.
 

balthazar14

Expert
en survolant ton post j'avais cru avoir affaire à un test logique . Donc la chaine est bien alphanumérique, mes excuses :)

En approfondissant un peu tes explications, la fonction =NB.SI(plage_de_cellules, critère) est parfaitement adaptée au comptage de cellules selon un critère.
Mais je ne comprend pas pourquoi tu espères utiliser SOMMEPROD(matrice1, [matrice2], [matrice3], ...) pour compter des cellules :??:
cette fonction a pour utilité d'effectuer les produits de matrices.
Je te donne un excellent lien qui explique clairement l'utilité de cette fonction.

Maintenant peut être ai je loupé un épisode .....si tu peux m'en dire plus je suis preneur.
Bonne soirée

 

GTmacrodeb

Expert
Bonjour,

Comme évoqué dans mon mail initial, j’avais opté à l’origine pour la fonction NB.SI, sauf que je ne parviens pas à rédiger la formule qui me permette de dénombrer le nombre de cases dont la date correspond à l’année 2017, c’est pour cela que j’avais basculé sur la fonction SOMMEPROD.

Voici les 2 formules que j’ai testées mais qui ne fonctionnent pas :
XML:
=NB.SI(ANNEE('Feuil1'!G3:G1048576);=2017)
XML:
=NB.SI('Feuil1'!G3:G1048576;ANNEE=2017)

Cette formule sera à compléter avec la fonction ET et la condition suivante :
XML:
=NB.SI(('Feuil1'!O3:O1048576);"VRAI")
(formule qui fonctionne)
 

drul

Obscur pro du hardware
Staff
Meilleure réponse
Salut,
Voilou:
=COUNTIFS(B:B;">=1.1.2017";B:B;"<1.1.2018";A:A;"VRAI")
(j'ai excel en anglais, countifs() =nb.si.ens() pour toi)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 834
Membres
1 586 369
Dernier membre
Mouslah
Partager cette page
Haut