Comptage de cellules sous conditions

Bonsoir R@chid,

j'aurais bien aimé faire plus simple si Excel supportait le NB.SI.ENS en matricielle

Avec mon idée de "scroll magique" sur l'année du planning, je ne vois pas comment me "séparer" des INDIRECT...

Et à priori si trop de variables "volatiles" Excel jette l'éponge pour les INDIRECT. Du coup l'idée de MFerrand avec celle de tulipe_4 me permettent d'arriver à ce que je veux.

D'ailleurs à ce sujet, MFerrand vous me demandiez si les INDIRECT de mon fichier "renvoyaient" les bonnes zones : effectivement lors de la décomposition de la formule, les INDIRECT me renvoyaient les bonne zones.... C'est bien pour cela que je ne comprend pas...

Mon fichier test je l'ai transformé tout en variable avec cellule nommée et tout et tout et il fonctionne, mais sur l'original, point de résultat !

Bref, un peu compliquer comme dit R@chid mais le contournement du problème l'a résolut.

Merci à vous tous, résultat sur APACHES !

@ bientôt

LouReeD

bonjour

oui mais si "les bonnes zones" contiennent des val issues de formules >>>>walou ;y a plus que DECALER . ADRESSE ou CHOISIR

cordialement

Bonsoir tulipe_4

en fait les zones ne contiennent que de l'alphanumérique, ce sont des codes de position :

exemple un personnel est en RTT le 3 mars.

La formule sur la feuille "récap pôle" pour connaître le nombre de personnel présent fait :

nombre de personnel total moins le nombre de personnel absent

le nombre de personnel absent est égal (pour le 3 mars) à la recherche de la somme des lignes "absence" avec au regard du 3 mars une valeur alphanumérique étant répertoriée dans la liste des codes d'absence, d'où une matricielle pour intégrer cette recherche dans la liste.

Le fichiers APACHES est téléchargeable sur le site, juste pour voir

la fonction BN.SI.ENS marchait bien si je recherchais qu'une position (par exemple RTT) mais le fait de vouloir le faire avec un test sur une liste ça ne marche plus.

Bref maintenant ça marche, je me retrouve avec un "faux" scroll horizontal qui me ramène bien toutes les données voulues.

Reste dans un avenir proche à "séparer" les codes d'absence du matin de l'après midi afin d'avoir deux lignes de renseignement du nombre de personnel présent : 6 le matin et 8 l'après midi car 2 ont posé seulement le matin...

Bref une nouvelle version d'APACHES et téléchargeable.

@ bientôt

LouReeD

Allez pour ceux qui restent attentif au sujet, ci dessous une image

comptage

qui montre que les INDIRECT vont bien chercher les données dans les bonnes colonnes :

de la ligne 10 (Lig_Ref+1 car Lig_ref est égal à la ligne d'entête du planning) à 65 (Ligne_max) en colonne 2 pour chercher le mot "absence" qui est la valeur de la cellule nommée [Position_journalière]

de la ligne 10 à 65 de la colonne 160 ($A$2+(COLONNE()-3 => $A$2 cellule de référence de la valeur de la barre de défilement, le colonne()-3 correspond au décalage de la colonne de la feuille "Récap_Pôle" par rapport à celle de la date équivalente de la feuille "Planning" donc colonne 160 de la feuille Planning correspond au mardi 6 juin) et qui recherche une correspondance avec la plage dynamique qui correspond à la liste des différentes positions des absences (RTT, CP, MAL etc...), cette liste ayant pour nom [Position_Présent] (j'aurais pu mieux choisir pour le nom je sais )

N_feuille_Planning est une cellule nommée qui contient la valeur "Planning"

Du coup la formule compte le nombre fois où se trouve sur la même ligne le mot absence en colonne 2 et un des mot d'absence en colonne 160, si une paire trouvée alors +1, etc.

Mais ça ne marche pas... Pourtant dans le fichier joint au posts plus haut cela fonctionne, je suis vert !!!

@ bientôt

LouReeD

Bonsoir à tous !!!

Ca y est j'ai enfin trouvé ce qui "coincé" dans ma "super" formule !!!!

En fait pour créer mon décalage de colonne, dans la formule j'utilise la fonction COLONNE() qui renvoie le numéro de colonne où l'instruction se trouve.

Hors à priori cette fonction ne supporte pas d'être dans une formule matricielle !

Lorsque je remplace COLONNE() par des valeurs en "dur" dans la formules, Ô miracle elle fonctionne parfaitement.

Pour preuve le fichier joint où la formule avec COLONNE() côtoie celle qui n'en a pas :

36comptage.xlsm (58.42 Ko)

Voilà, INDIRECT marche à peu près dans tous les cas, il peu y avoir des interférences avec d'autre FONCTION;

Du coup en cas de doute la décomposition peu s'avérée être utile pour trouver cette interférence, ici a priori c'est la fonction COLONNE() sous "formule matricielle" qui provoquait cette erreur de résultat !

Enfin si cela peu servir à d'autre...

@ bientôt

LouReeD

Salut LouReed !

Je suis surpris que cela ne marche pas avec COLONNE(), LIGNE et COLONNE étant souvent utilisées pour générer des matrices...

A l'évaluation, on voit bien la plage se former et c'est au dernier +2 que l'expression de plage décroche sur VALEUR!...

Sous cette forme cependant, elle fonctionne :

=SOMME(SI(INDIRECT($A$11&"!L"&$A$13&"C"&$A$9&":L"&$A$15&"C"&$A$9;FAUX)=$A$7;SI(NB.SI(La_Liste;INDIRECT($A$11&"!L"&$A$13&"C"&$C$1+COLONNES($C$7:C$7)&":L"&$A$15&"C"&$C$1+COLONNES($C$7:C$7);FAUX));1)))

NB- Si tu formules en L1C1, je crois qu'il faut mettre : COLONNES(C3:C)

Bonjour

en faite je voulais la fonction COLONNE pour une incrémentation de valeur automatique lors de la recopie de la formule sur les colonnes de droites...

En fait j'ai simplement supprimer cette incrémentation automatique en modifiant "à la main" les 30 formules en y mettant directement les "+1", "+2", "+3" etc qu'il fallait, et ça fonctionne !

Merci encore à tous de vous être penché sur ma demande et @ bientôt

LouReeD

Rechercher des sujets similaires à "comptage conditions"