Récupération de données

diabolo

XLDnaute Nouveau
Bonjour,
J'ai un tableau de X lignes comportant dans la premières colonne des noms et dans les Y colones qui suivent des caractéristiques en texte (M, CA, RTT, o ...). Je voudrai dans un autre tableau mettre en face des noms le nombre d'occurence de chaque caractères.
Peut-être le sujet a-t-il déjà été traité.
Merci de votre réponse. [file name=MFINE.zip size=2991]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MFINE.zip[/file]
 

Pièces jointes

  • MFINE.zip
    2.9 KB · Affichages: 11

thri

XLDnaute Junior
Bonsoir diabolo JC de Lorient, le forun
Avec cette formule! A+ [file name=MFINE1.zip size=3729]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/MFINE1.zip[/file]
 

Pièces jointes

  • MFINE1.zip
    3.6 KB · Affichages: 14

diabolo

XLDnaute Nouveau
Merci. Je suis très impressionné.
Tu avais compris qu'il s'agit de planning. Peux-tu m'expliquer le fonctionnement de cette formule. Je me casse la tête dessus depuis qq jours et je n'arrive pas à saisir le raisonnement qui permet d'y arriver.
Dans le même ordre d'idée : afficher un planning périodique sous des dates variables d'un autre tableau. Ex joint.
 

ODVJ

XLDnaute Impliqué
Bonjour,

quelques explications sur la formule qu'il faut décomposer en 4 parties pour comprendre :
1) EQUIV($A16;$A$1:$A$9;0)
ça permet de retrouver le n° de ligne, dans le tableau $A$1:$A$9, correspondant au nom contenu dans $A16 (l'adressage est absolu_colonne pour la future recopie vers la droite de la formule).
2)INDEX($B$1:$Q$9;EQUIV($A16;$A$1:$A$9;0);0)
fournit la ligne complète d'indice EQUIV($A16;$A$1:$A$9;0) dans le tableau $B$1:$Q$9 qui est celui contenant les valeurs à compter.
3) SI(INDEX($B$1:$Q$9;EQUIV($A16;$A$1:$A$9;0);0)=B$15;1;0)
B$15 contient le paramètre à compter dans la ligne INDEX($B$1:$Q$9;EQUIV($A16;$A$1:$A$9;0);0) correspondant au nom contenu dans $A16. (adressage absolu_ligne pour la future recopie vers le bas).
c'est à cet endroit qu'intervient le côté matriciel de la formule : pour chaque cellule de la ligne trouvée, un test de comparaison est fait (=B$15) et si le test est vrai alors je prend la valeur 1, sinon la valeur 0. Ces vakleurs seront sommées par le dernier niveau de la formule.
4) {=SOMME(SI(INDEX($B$1:$Q$9;EQUIV($A16;$A$1:$A$9;0);0)=B$15;1;0))}
la somme des 1 et des 0 trouvés à l'étape précédente fournit le résultat de comptage souhaité. Le CTRL+ALT+ENTER positionne les accolades.

cordialement
 

Discussions similaires