Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formule magique plus

32 réponses
Avatar
HB
Bonsoir,

Je ne crois pas être totalement nul
mais certaines formules me laissent pantois ...

Pour obtenir le nombre de valeurs distinctes dans B2:B700
je sais que la formule "matricielle" suivante fonctionne

{=SOMME(SI(B2:B700<>"";1/NB.SI(B2:B700;B2:B700)))}

Toutefois, je ne comprends pas du tout comment elle fonctionne.

En plus il faudrait que j'ajoute un argument conditionnel
faisant référence à la colonne A.

En effet je voudrais le
nombre de valeurs distinctes de B2:B700
parmi celles qui correspondent à la valeur "XXX" dans la colonne A
(les valeurs dans la colonne A seront au format texte...).

(if you see what I mean)

Merci d'avance aux supers cracks des formules qui voudront bien avoir
pitié de mes pauvres neurones...

Cordialement,

HB

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus

2 réponses

1 2 3 4
Avatar
HB
Bonsoir Isabelle,
Quand on regarde l'évaluation pas à pas
( dans la formule matricielle fautive)
à la fin de l'évaluation de SI(Classe=I$1;Anniv;"")
on voit parfaitement la liste
des 745 valeurs attendues { ; ; ; ... }
Il me semblait donc naturel de penser
que ceci serait considéré comme une matrice
à l'étape suivante (le nb.si() )
donc donc donc ...
Je n'ai pas bien compris ce qu'est ou n'est pas une matrice
et d'ailleurs il semble que LSteph ait le même problème.
Cela m'inquiète un peu ... c'est "contre-intuitif" ;o)
Par ailleurs, je tente de comprendre
ta formule qui fonctionne
=NB(GROS-SI)
Le GROS-SI étant
SI(Classe=$I$1;1/FREQUENCE(TABLO;LIGNE(Classe)))
ou TABLO est
EQUIV(Classe&Anniv;Classe&Anniv; 0)
La concaténation terme à terme des deux listes
donne classe1Date1 ; .... ; classe745Date745
Et pour chacun, EQUIV cherche le rang de la première occurrence
EQUIV retourne la liste de ces 745 rangs.
OUi ? Non ?
Si un rang est présent n fois dans cette liste
c'est que le couple (classe_i ; date_i) associé
est présent n fois ...
oui ? non ?
LIGNE(Classe) retourne les numéros de ligne ...
et là je commence à avoir de gros doutes
sur ce qui se passe dans
SI(Classe=I1; 1/FREQ() ...)
Cela retourne donc une liste...
L'élément numéro i est l'inverse du nombre des rangs pondus par EQUIV
qui sont (les rangs) inférieurs (ou égaux) au numéro de ligne
du i-ème élève de la classe
Oui ? Non ?
pffff ... Je ne suis pas familier de ce type de "Gym mentale"
et je trouve ça plutôt compliqué ...
=NB(ZONE) compte le nb de cellules contenant des nombres dans ZONE.
Oui ? non ?
Ici, ce serait donc la longueur de la liste retournée par SI
Mézalor à quoi sert le 1/FREQ() ????
Banzaï ! je n'ai rien compris ... ou du moins pas tout !!!!
La théorie d'Galois, à côté, c'est du gâteau ...
Amicalement,
H.B.
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
HB
re-bonsoir,
Je viens de me rendre compte que cette formule
ne donne pas toujours le bon résultat.
Pour vérifier si c'était bon ou pas
j'ai ordonné le tableau (selon classes puis Anniv)
ainsi, on peut facilement vérifier visuellement
si le nb de dates distinctes est correct
Par exemple, pour 6EME7
il y a 23 dates distinctes
et la formule annonce 22
J'ai aussi remarqué que la formule
est sensible à l'ordre...
Certaines valeurs ont changé quand j'ai rangé...
par exemple pour 3EME6 :
annonce 25 au début (faux)
puis 27 quand c'est rangé (juste)
Comme tout ça est très au delà de mon niveau de compétence,
je n'ai pas cherché l'origine de l'erreur ;o)
Amicalement,
H.B.
Le 04/06/2016 à 05:40, isabelle a écrit :
il y avais un petit ménage de parenthèse qui restait à faire
=NB(SI(Classe=$I$1;1/FREQUENCE(EQUIV(Classe&Anniv;Classe&Anniv;0);LIGNE(Classe))))
isabelle

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
1 2 3 4