Comptage de cellules sous conditions

Bonjour à tous,

ci joint un fichier pour vous expliquer ce que je souhaite obtenir...

45comptage.xlsx (9.28 Ko)

Je ne sais pas ce que j'ai mais là ça bloque...

En face de LouReeD il y a des valeur alphanumériques comme en face de LRD.

Je souhaite compter le nombre de fois où LouReeD est en face d'une valeur appartenant à une liste définie.

Merci à vous par avance.

@ bientôt

LouReeD

Je me répète, je ne sais pas ce que j'ai aujourd'hui...

Houlà ! Salut LouReed !

Les vacances n'ont pas été profitables ? Faut en reprendre !

En voilà une :

=SOMME(SI(A1:A16="LouReeD";SI(NB.SI(La_Liste;B1:B16);1)))

Matricielle.

Il y en a sûrement d'autres...

Maréchal ! Bonjour à vous !

J'ai presque failli vous écrire directement !

Mais sachant que vous avez un "mouchard" sur mes posts, je me suis dit que ce n'était pas nécessaire !

Je n'avais pas tord !!!

Merci pour cette réponse qui me va très bien.

Mais il est dommage que NB.SI.ENS ne puisse pas être "matricielle" je trouvais l'écriture de la fonction plutôt propre, non ?

@ bientôt

LouReeD

Bonjour @ tous,

=SOMMEPROD(NB.SI(La_Liste;B1:B16)*(A1:A16="LouReeD"))

@ + +

bonjour ;salut r@chid

je viens d'ouvirir le post de lou_reed ;etonné par sa "panne" ...

pas mieux

=SOMMEPROD((A1:A16="LouReeD")*(NB.SI(La_Liste;B1:B16)))

meme pas tropicalement tridactyle

cordialement

Bonsoir à vous tous !

J'aime voir les meilleurs répondre à mes questions !!!

Alors juste une chose : vos réponses fonctionnent très bien sur mon fichier "test", mais hélas sur le fichier source cela ne marche pas...

C'est peut-être du à mes zones qui sont sous la forme "INDIRECT", voici la copie de la formule de MFerrand avec mon adaptation des mes INDIRECT

En gros ce que fait la formule : elle regarde sur la feuille "N_Feuille_Planning" (variable qui contient le nom de l'onglet où se trouve le planning) en colonne 2 de la ligne 10 à 65 (le 10 et 65 sont issu de "calcul") si le mot "Position_journalière" (variable qui contient le mot Absence) et que sur la conne correspondant au jour testé contient un des codes alphanumérique contenu dans la liste "Position_Présent" :

{=SOMME(SI(INDIRECT("'"&N_feuille_Planning&"'!L"&Lig_Ref+1&"C2:L"&Ligne_max&"C2";FAUX)=""&Position_journalière&"";SI(NB.SI(Position_Présent;INDIRECT("'"&N_feuille_Planning&"'!L"&Lig_Ref+1&"C"&$A$2+(COLONNE()-3)&":L"&Ligne_max&"C"&$A$2+(COLONNE()-3);FAUX));1)))}

La fonction que j'avais d'origine étais un NB.SI.ENS avec :

=NB.SI.ENS(INDIRECT("'"&N_feuille_Planning&"'!L"&Lig_Ref+1&"C2:L"&Ligne_max&"C2";FAUX);Position_journalière;INDIRECT("'"&N_feuille_Planning&"'!L"&Lig_Ref+1&"C"&$A$2+(COLONNE()-3)&":L"&Ligne_max&"C"&$A$2+(COLONNE()-3);FAUX);"")

mais le test ne se fait que sur l'absence de valeur ("") hors je dois rajouter une lite de possibilité...

Alors Est-ce le fait des INDIRECT, ou bien le fait de chercher sur une autre feuille ?

Merci encore à vous, mais il est vrai que là je sèche (et ça m'arrive plus qu'a mon accoutumé... Si si je vous assure ! )

@ (très) bientôt

LouReeD

Tu travailles en L1C1 ! ?

oui...

en fait j'ai une feuille avec un tableau "fixe" mais les valeurs défilent grâce à une barre de défilement.

Du coup pour trouver la colonne du jour voulu par rapport à la barre de défilement je suis passé en L1C1...

C'est de là que vient le "non fonctionnement" ?

Je viens de tester sur le fichier test ci-joint et ça marche, cela viendrait d'une autre variable ?

35comptage.xlsx (11.79 Ko)

@ bientôt

LouReeD

je viens de tout mettre "en variable" et ô joie, cela fonctionne !!!

26comptage.xlsx (11.85 Ko)

Mais pas sur le fichier d'origine...

@ bientôt

LouReeD

A priori non !

Mais vérifie ce que renvoient tes expressions dans INDIRECT.

Eventuellement renvoie la chaîne produite dans une cellule pour vérifier que les définitions de plages sont correctes.

merci du conseil, je vais essayer de "décomposer" l'ensemble de la formule.

@ bientôt et merci encore

LouReeD

bonjour

moi ce qui me chifonne c'est

INDIRECT (ton tas de cel nommées ;FAUX) ;je ne vois pas ce que viens faire ce FAUX car indirect ne calcule rien ;il converti

de plus on ne doit pas pouvoir utiliser le resultat d'une formule dans indirect (ça pete un #ref#)

cordialement

Bonjour tulipe_4,

INDIRECT ne fait pas de calcul, il transforme en "variable" des plages de cellules.

Le FAUX à la fin stipule que la concaténation des variables abouti à une référence de type "L1C1" et non pas "A1", ce qui permet de gérer les colonnes "alphabétique" en colonne numériques.

Dans la formule de MFerrand : =SOMME(SI(A1:A16="LouReeD";SI(NB.SI(La_Liste;B1:B16);1)))

je remplace A1:A16 par l'équivalent en Indirect mais en L1C1 ce qui donne INDIRECT("L1C1:L16C1") et cette instruction entre guillemets je la "crée" avec mes différentes variables... Sur le fichier test cela fonctionne, sur mon fichier cela ne fonctionne pas...

Je cherche il doit bien y avoir une raison.

@ bientôt

LouReeD

Bonjour,

Je suis dans ma période TCD, alors on ne sais jamais, proposition jointe

26comptage.xlsx (13.05 Ko)

Bonsoir Rrradassse !

Dans mon cas je ne pense pas qu'un TCD me convienne merci

Ceci dit je ne trouve pas les deux LouReeD avec un A

N'y les 2 LouReeD avec un C

Pour le B cela fonctionne....

@ bientôt

LouReeD

ha oui je suis allée un peu vite, il faut un titre aux colonnes sinon la première ligne est compté comme titre, ce qui m'a d'ailleur induite en erreur pour les résultats. Ensuite il faut ajouter un champs du nomA1 (L1C1) à l'étiquettes de ligne.

Cdt,


voila en pièce jointe, rectifié. J'ai aussi trié les champs pour ne garder que LouReed et A B C D

22comptage.xlsx (15.35 Ko)

re

c'est peut etre con ; mais au lieu de jouer que de l'indirect ; as tu taté avec ADRESSE

Cordialement

tâter ADRESSE ? je ne connais pas

je vais jetais un œil, qui sait ?

Merci et @ bientôt

LouReeD

Bonsoir à tous !

voyez mon grand sourire !!!!

Bon et bien j'ai fais un mixe des réponses :

la formule de MFerrand avec son idée de "décortiquer"

la fonction ADRESSE de tulipe_4

et voici le résultat :

{=NB_Personnel-SOMME(SI(INDIRECT(C33&"!"&C34&":"&C35)=Position_journalière;SI(NB.SI(Position_Présent;INDIRECT(C33&"!"&C36&":"&C37));1)))}

où NB_Personnel est une cellule nommée avec le nombre de personnel suivi.

C33 = au nom de la feuille par la cellule nommée (c33=N_Feuille_Planning)

C34 et C35 correspondent au cellule de départ et d'arrivée de la première plage de recherche ($B$2 et $B$10)

ce qui nous donne avec l'indirect : Planning!$B$2:$B$10

Position_journalière est une cellule nommée qui contient "Absence"

Position_Présent est une liste nommée qui contient plusieurs termes (d'ailleurs elle devrait s'appelait Position_Absence car j'ai lister les codes d'absence)

et le deuxième INDIRECT qui donne la deuxième plage de recherche où la colonne dépend du jour que l'on veut.

Le tout en matricielle !

Ce qui est étrange j'ai remplacé les cellules C33, C34, C35, C36 et C37 avec leur formules respectives et vlan !!! là ça ne marche plus !

Excel ne doit pas supporter trop de "volatile" dans les formules... coin coin !!!

Merci à vous de vous être pencher sur mon cas.

@ très bientôt sur le forum, pour des questions, des réponses ou bien autre chose !

LouReeD

Bonsoir,

{=NB_Personnel-SOMME(SI(INDIRECT(C33&"!"&C34&":"&C35)=Position_journalière;SI(NB.SI(Position_Présent;INDIRECT(C33&"!"&C36&":"&C37));1)))}

tu aimes te compliquer la vie

Amicalement

Rechercher des sujets similaires à "comptage conditions"