XL 2016 Comprendre cette formule

grodep

XLDnaute Occasionnel
Bonjour à tous, j'ai récupéré sur le net, une formule qui fonctionne très bien pour ce que je veux faire mais dont je ne comprends absolument pas le fonctionnement:
Il s'agit de récupérer, dans un tableau, le nombre d'occurences différentes.
Et la formule matricielle pour effectuer cette tache est la suivante:
={SOMME(1/NB.SI($AC$2:$KQ$15;$AC$2:$KQ$15)) }

Si d'aucuns ici se sent le courage de m'expliquer...
Merci par avance
 

Scoub

XLDnaute Nouveau
Bonjour,

Je vais tenter d'illustrer avec un exemple : table 2 colonnes de 9 lignes

Table
AA
BA
CF
AG
BA
CA
AB
BA
DI


SOMME(1/NB.SI($A$3:$B$11;$A$3:$B$11)) = 7 occurrences


Compte nb de fois la valeur présente dans tableauAttribution d'une valeur par élément
avec formule NB.SI($A$3:$B$11;E3)avec formule 1/nb de présence de cette valeurnb fois présence * valeur attribuée
A
8​
0,125​
A chaque A la formule lui attribue 1/8 en valeur
1​
Résultat 8 A chacun de 0,125 en valeur pour chaque occurrence soit : 8 * 0,125 = 1 occurrence
B
4​
0,25​
A chaque B la formule lui attribue 1/4 en valeur
1​
Résultat 4 B chacun de 0,25 en valeur pour chaque occurrence soit : 4 * 0,25 = 1 occurrence
C
2​
0,5​
A chaque C la formule lui attribue 1/2 en valeur
1​
Résultat 2 C chacun de 0,5 en valeur pour chaque occurrence soit : 2 * 0,5 = 1 occurrence
D
1​
1​
A chaque D la formule lui attribue 1/1 en valeur
1​
Résultat 1 D chacun de 1 en valeur pour chaque occurrence soit : 1 * 1 = 1 occurrence
E
0​
0​
A chaque E la formule lui attribue 1/0 en valeur
0​
Résultat 0 E chacun de 0 en valeur pour chaque occurrence soit : 0 * 0 = 0 occurrence
F
1​
1​
A chaque F la formule lui attribue 1/1 en valeur
1​
Résultat 1 F chacun de 1 en valeur pour chaque occurrence soit : 1 * 1 = 1 occurrence
G
1​
1​
A chaque G la formule lui attribue 1/1 en valeur
1​
Résultat 1 G chacun de 1 en valeur pour chaque occurrence soit : 1 * 1 = 1 occurrence
H
0​
0​
A chaque H la formule lui attribue 1/0 en valeur
0​
Résultat 0 H chacun de 0 en valeur pour chaque occurrence soit : 0 * 0 = 0 occurrence
I
1​
1​
A chaque I la formule lui attribue 1/1 en valeur
1​
Résultat 1 I chacun de 1 en valeur pour chaque occurrence soit : 1 * 1 = 1 occurrence
somme de toutes les valeurs
nb de valeurs totales
18​
7​
occurrences


La table donnerait cela en valeur
Table
0,125​
0,125​
0,25​
0,125​
0,5​
1​
0,125​
1​
0,25​
0,125​
0,5​
0,125​
0,125​
0,25​
0,25​
0,125​
1​
1​

Le total correspondant à la valeur 7 (nombre d'occurrence)

Je ne suis pas sûr d'avoir été très compréhensible malgré l'utilisation de l'exemple...
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Toujours assez compliqué d'expliquer des formules matricielles.
J'avais commencé, je termine. C'est bien moins détaillé que l'explication de @Scoub que je salue :)

NB.SI(Plage,valeur) va compter le nombres de fois où valeur est présent dans la plage.

Maintenant si valeur correspond aussi à plage, NB.SI(plage, plage) va pour chaque valeur de plage (2ème argument) compter le nombre de fois où cette valeur apparait dans plage (1er argument).

Comme il traite cela pour chaque valeur de plage, NB.SI va retourner non pas une seule valeur mais une matrice avec le nombre d'apparition de chaque valeur et ceci autant de fois qu'il y a de valeurs dans la plage.

Ici on utilise une astuce : plutôt que de renvoyer le nombre d'apparition pour chaque valeur, on va renvoyer son inverse (1 / nombre d'occurrence de chaque valeur ). En effet :
  • si a apparait une fois, alors dans la matrice des inverses on a une fois 1/1 (1/1 fois 1 =1)
  • si b apparait 2 fois, alors dans la matrice des inverses apparait deux fois 1/2 (1/2 fois 2 =1)
  • si a et b apparaissent chacun 2 fois, alors dans la matrice des inverses apparait quatre fois 1/2 (1/2 fois 4 =2)
  • si a apparait 3 fois , alors dans la matrice des inverses apparait 3 fois 1/3 (1/3 fois 3 =1)
On s'aperçoit donc que la somme de la matrice des inverses du nombre d'occurrence de chaque valeur de la plage est égal au nombre de valeurs différentes de la plage.

Soit plage = {1, 2, 2, 3 ,1 , 4 , 5, 5 , 9 , 5}
La matrice des occurrences donne : {2, 2, 2, 1, 2, 1 3, 3, 1, 3}
La matrice des inverses donne : {1/2, 1/2, 1/2, 1/1, 1/2, 1/1, 1/3, 1/3, 1/1, 1/3}
Si on somme les éléments, on trouve 6
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @Scoub :) ;) ,

Au temps jadis, quand j'étais très beaucoup plus jeune, pour contrer mon utilisation (abusive certes) de signes mathématiques (∀, ∃, ∈, ->, <-> , etc) dans mes démonstrations, mon prof. de math m'avait interdit d'utiliser tout signe mathématique et ne m'avait autorisé que du texte. C'était pénible, c'était très formateur et il doit m'en rester une certaine inclination à la prose. 🤪
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
413

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 188
dernier inscrit
evebar