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

Microsoft 365 Transformer les données d'une colonne en fonction de 2 autres colonnes

Tidjyphenom

XLDnaute Nouveau
Bonjour, mieux vaut un classeur exemple ci-joint qu'un long discours. Voici ma problématique :

J'ai récupérer une liste de catégories dont les données sont fournies sur 2 colonnes (ID et Nom). Une troisième colonne fournie l'ID de la catégorie parente. Je souhaite créer une 4ème colonne (indiquée en rouge dans le fichier joint). Cette 4ème colonne contiendrait le nom correspondant à l'ID de la catégorie parente (nom correspondant à la 3ème colonne).

Structure de mon classeur

-----------------------------------------------
ID - Nom - Parent ID - Parent Nom
----------------------------------------------
1 - Home - 0 - Aucun parent
2 - Cat deux - 1 - ??? (devrait être Home)
3 - Categorie trois - 1 - ??? (devrait être Home)
4 - Cat quatre - 6 - ??? (devrait être Catégorie six)
5 - Catégorie cinq - 4 - ??? (devrait être Cat quatre)
6 - Catégorie six - 2 - ??? (devrait être Cat deux)
etc...
-----------------------------------------------

Du coup pour trouver comment remplir la colonne Parent Nom la formule doit récupérer l'ID Parent de la ligne qu'il faut rechercher dans la colonne ID et trouver le nom associé à cette ID qui se trouve dans la colonne Nom du coup. Je ne sais pas si c'est possible.
 

Pièces jointes

  • Classeur1.xlsx
    10 KB · Affichages: 5

Tidjyphenom

XLDnaute Nouveau

EQUIV(C3;A:A)) retourne le numéro de la ligne correspondant à la valeur de la cellule C3 dans la colonne A
A partir de là je peux retourner la valeur recherchée dans la colonne B grâce au numéro récupéré. Ce qui donne bien INDIRECT("B"&EQUIV(C3;A:A)) au final. Quel résultat bizarre avez vous en retour ? car de mon côté ça fonctionne comme espéré.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Oups! Sorry, j'avais mis votre formule in extenso en D2, et donc tout était décalé d'une ligne.
Donc c'est ok. Autant pour moi.
Par contre vous pouvez rajouter le sierreur pour éviter l'affichage des #N/A :
VB:
=SIERREUR(INDIRECT("B"&EQUIV(C2;A:A));"")
 

Discussions similaires

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