Création d'un classement dans Excel en faisant correspondre des valeurs dans des cellules non-contigües


2

J'ai un fichier Excel qui ressemble à ceci:

   A  B  C  D  E        F  G  H  I  J      K  L  M  N  O  
1  Alice                Bob                Charles
2  10 35 54 9 21        71 15 43 75 98     13 35 66 80 20

où chaque groupe de 5 colonnes rapporte des données relatives à une personne donnée.

Je veux construire cinq classements basés sur les valeurs des 5 colonnes de chaque groupe. Par exemple, le classement des colonnes "A, F, K" devrait être "Bob, Charles, Alice" (parce que la valeur dans A de Bob est 71, la valeur dans A de Charles est 13 et la valeur dans A de Alice a 10 ans). De même, le classement de "B, G, L" serait soit "Alice, Charles, Bob" ou "Charles, Alice, Bob" (car il y a égalité: 35, 35, 15).

Je suppose que je devrais utiliser un mélange de INDEX / MATCH, (V) LOOKUP et LARGE mais je ne sais pas vraiment par où commencer. Le plus éloigné que je connaisse est quelque chose du genre

LARGE((A2, F2, K2), 1)
LARGE((A2, F2, K2), 2)
LARGE((A2, F2, K2), 3)

Cela (devrait) afficher les première, deuxième et troisième valeurs les plus importantes pour la plage "A2, F2, K2", mais je ne sais pas comment obtenir le nom de la personne associée à cette valeur à partir de là. J'ai quelques difficultés à généraliser les exemples que j'ai trouvés avec INDEX / MATCH et les fonctions de recherche à cette structure de données atypique (par groupes de cinq colonnes).

EDIT: Les noms (Alice, Bob, Charles) sont sur les cellules fusionnées.


Vous avez certainement mentionné les «cellules non contiguës». Cependant, pour confirmer, les noms des personnes, par exemple Alice, Bob, sont-ils dans une seule cellule avec des blancs en blanc ou des cellules fusionnées?
patkim

Les noms sont sur les cellules fusionnées.
arrêté le

Les 15 valeurs sont-elles toujours distinctes? Peut-il y avoir des valeurs répétitives?
Patkim

Oui, il peut y avoir des valeurs répétées, comme expliqué dans le deuxième exemple pour le classement de B, G, L (il y a un lien sur la valeur 35, dans ce cas, l'ordre dans le classement n'a pas d'importance).
arrêté le

Est-ce la seule donnée que vous avez dans votre fichier Excel? Par exemple, avez-vous des données répétées dans les rangées 3 et 4 sur les mêmes lignes que les 1 et 2?
patkim

Réponses:


0

Vous pouvez écrire les données différemment afin d’utiliser Rank:

En E2 =RANK($B2,$B2:$D2,0)
En F2 =RANK($C2,$B2:$D2,0)
En G2=RANK($D2,$B2:$D2,0)

Et vous pouvez faire glisser chaque formule dans la même colonne

entrez la description de l'image ici


Je vous remercie pour votre solution proposée, mais ce que je recherche, c’est un classement où le contenu des cellules est un classement avec des noms plutôt que des chiffres. Cela signifie que j'ai besoin d'un classement ressemblant à Alice Bob Charles Bob Charles Bob Alice Alice Au lieu d'un tableau avec un nombre indiquant le nombre de personnes dans chaque rang
st1led

0

Je suggère une solution, mais elle ne convient que s'il s'agit de la seule donnée figurant sur votre feuille. Si vous avez des lignes répétées ci-dessous sur des lignes similaires aux lignes 1 et 2, cela deviendra une solution inefficace et vous devrez probablement opter pour VBA.

Voir la capture d'écran ci-dessous.

La matrice est alignée dans la plage G7: J12.

Formule en H8

=IF(CHOOSE(1,$A$2,$F$2,$K$2)=LARGE(($A$2,$F$2,$K$2),1),$A$1,IF(CHOOSE(2,$A$2,$F$2,$K$2)=LARGE(($A$2,$F$2,$K$2),1),$F$1,$K$1))

H9

=IF(CHOOSE(1,$B$2,$G$2,$L$2)=LARGE(($B$2,$G$2,$L$2),1),$A$1,IF(CHOOSE(2,$B$2,$G$2,$L$2)=LARGE(($B$2,$G$2,$L$2),1),$F$1,$K$1))

H10

=IF(CHOOSE(1,$C$2,$H$2,$M$2)=LARGE(($C$2,$H$2,$M$2),1),$A$1,IF(CHOOSE(2,$C$2,$H$2,$M$2)=LARGE(($C$2,$H$2,$M$2),1),$F$1,$K$1))

H11

=IF(CHOOSE(1,$D$2,$I$2,$N$2)=LARGE(($D$2,$I$2,$N$2),1),$A$1,IF(CHOOSE(2,$D$2,$I$2,$N$2)=LARGE(($D$2,$I$2,$N$2),1),$F$1,$K$1))

H12

=IF(CHOOSE(1,$E$2,$J$2,$O$2)=LARGE(($E$2,$J$2,$O$2),1),$A$1,IF(CHOOSE(2,$E$2,$J$2,$O$2)=LARGE(($E$2,$J$2,$O$2),1),$F$1,$K$1))

Maintenant, faites glisser les formules respectives vers la droite et modifiez légèrement la fonction LARGE. Pour la deuxième colonne, c.-à-d. Col I, définissez le deuxième paramètre sur 2 pour LARGE et pour la troisième colonne, Col J, définissez-le 3.

entrez la description de l'image ici

Honnêtement, jetez cette solution si vous avez des lignes répétitives ci-dessous et que vous devez le faire pour chaque ensemble ou chaque ligne.


C'est exactement le type de classement dont j'ai besoin. Je vais essayer d'adapter votre exemple à mes données, mais comme vous le soupçonniez, c'est plus compliqué. J'ai environ 10 personnes au total, chacune d'entre elles ayant environ 10 types de données différents (disons quelque chose comme 10 classements de longueur 10). Je pourrais peut-être le faire, mais je pense avoir besoin de 9 de ces constructions "IF / CHOOSE", semble compliqué.
Stélé

1
Excel a une limite de 7 FI imbriqués. Même maintenir 7 FI imbriqués est trop volumineux. Il y a peut-être une solution plus intelligente, mais c'est ce à quoi je pourrais penser pour le moment! Si vous connaissez bien le codage VBA, vous pouvez également opter pour cela, car il sera moins complexe et plus difficile à résoudre en un seul clic.
Patkim
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.