Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Rang sur plusieurs colonnes

randle008

XLDnaute Nouveau
Bonjour à tous,

Je me heurte à une problématique que je n’arrive pas à résoudre. J’ai un fichier en pj pour que ce soit plus explicite.

En gros j’ai un fichier avec plusieurs colonnes et pour chaque colonne je souhaiterais avoir le rang.

J’ai les clients en ligne et les CA (1,2,3) en colonne et donc quand je sélectionne un client, je souhaiterais avoir le rang de CA1, CA2, CA3.

Bien entendu ce fichier d’exemple est très simplifié et donc mon « vrai » fichier comporte beaucoup plus de colonne et de ligne (c’est pour cela que je souhaiterais automatiser cela.

Merci par avance
 

Pièces jointes

  • TEST XLS.xlsx
    9.3 KB · Affichages: 10
Solution
Bonsoir à tous ,

Une autre formule en B10 à copier vers le bas :
VB:
=RANG(INDEX($A$1:$D$5; EQUIV($B$8;$A$1:$A$5;0);EQUIV($A10;$A$1:$D$1;0));INDEX($A$1:$D$5;;EQUIV($A10;$A$1:$D$1;0));0)

lors les textes sont dans le même ordre mais la subtilité est que dans la plage A10:A12, il y a des colonnes entre les textes (ou colonnes) qui m'intéressent.
Quand on désire une réponse pertinente, il faut que le classeur exemple soit le reflet de votre classeur réel .

JHA

XLDnaute Barbatruc
Bonjour à tous,

A essayer
VB:
=RANG(INDEX(DECALER($A$1;1;EQUIV($A10;$B$1:$D$1;0);4);EQUIV($B$8;$A$2:$A$5;0));DECALER($A$1;1;EQUIV($A10;$B$1:$D$1;0);4))

JHA
 

Pièces jointes

  • TEST XLS.xlsx
    9.7 KB · Affichages: 6

goube

XLDnaute Accro
Bonjour à tous,

Une autre façon.
VB:
=RANG(INDEX(Tableau1;EQUIV($B$8;Tableau1[Client];0);EQUIV($A10;Tableau1[#En-têtes];0));INDIRECT("Tableau1["&$A10&"]"))
Cordialement
 

Pièces jointes

  • TEST XLS.xlsx
    11.1 KB · Affichages: 4

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
Bonjour le fil
Allez, une autre version, à base de Power Query
(Qu'il faudra sûrement adapter au fichier réel...)
Bonne apm
 

Pièces jointes

  • PQ_Rang CA.xlsx
    18.6 KB · Affichages: 4

job75

XLDnaute Barbatruc
Bonjour randle008, le forum,

Si le tableau source a beaucoup de colonnes le calcul de 3 EQUIV dans chaque cellule peut prendre du temps.

On peut en éviter 2 en remplaçant CA 1, CA 2, CA 3... par 1 2 3 au format personnalisé "CA "0.

La formule en B10 devient :
VB:
=RANG(INDEX(B$1:D$5;EQUIV(B$8;A$1:A$5;0);A10);INDEX(B$1:D$5;;A10))
A+
 

Pièces jointes

  • TEST XLS.xlsx
    10.6 KB · Affichages: 5

randle008

XLDnaute Nouveau
Bonjour à tous,

Déjà un grand merci pour vos messages et vos solutions !
Je vais potasser tout cela pour comprendre et tenter de l'adapter à mon fichier.

@job75 Malheureusement je ne peux pas modifier le format de l’entête. En effet ce tableau vient d’une extraction d’un outil et du coup, je souhaiterais l’utiliser tel quel pour ne pas avoir à faire de manipulation.

Merci en tout cas pour votre réactivité à tous
 

job75

XLDnaute Barbatruc
@job75 Malheureusement je ne peux pas modifier le format de l’entête. En effet ce tableau vient d’une extraction d’un outil et du coup, je souhaiterais l’utiliser tel quel pour ne pas avoir à faire de manipulation.
En fait il suffit que les textes en A10:A12 soient dans le même ordre qu'en B1: D1.

Nouvelle formule en B10 :
Code:
=RANG(INDEX(B$1:D$5;EQUIV(B$8;A$1:A$5;0);LIGNE(B1));INDEX(B$1:D$5;;LIGNE(B1)))
 

Pièces jointes

  • TEST XLS(1).xlsx
    10.4 KB · Affichages: 5

mapomme

XLDnaute Barbatruc
Bonsoir à tous ,

Une autre formule en B10 à copier vers le bas :
VB:
=RANG(INDEX($A$1:$D$5; EQUIV($B$8;$A$1:$A$5;0);EQUIV($A10;$A$1:$D$1;0));INDEX($A$1:$D$5;;EQUIV($A10;$A$1:$D$1;0));0)

lors les textes sont dans le même ordre mais la subtilité est que dans la plage A10:A12, il y a des colonnes entre les textes (ou colonnes) qui m'intéressent.
Quand on désire une réponse pertinente, il faut que le classeur exemple soit le reflet de votre classeur réel .
 

Pièces jointes

  • randle008- Rang- v1.xlsx
    10.5 KB · Affichages: 6

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…