XL 2019 Rechercher la valeur d'une cellule dans une table excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CaptnCavern

XLDnaute Nouveau
Bonjour,
dans le tableau ci-joint, je cherche une formule permettant de retrouver à partir d'une référence issue des colonnes A F ou K, sa valeur équivalente en colonne D I ou J.
Le problème du rechercheV ou index/equiv est qu'il faut connaitre au départ dans quelle colonne est la valeur finale recherchée.
Or, dans mon cas, ma donnée de départ peut-être dans l'une de ces 3 colonnes (A, F, K), et je ne connais donc pas si la valeur finale sera en D,I ou J.
L'objectif à terme est de combiner les mini-tableaux en un seul.
Merci par avance pour votre aide.
 

Pièces jointes

Bonjour à tous,

Comme ce sont les meme references dans les trois tableaux verts, c'est les 3 prix qu'il te faut ?

Crdlmt
Bonjour Djidji. En fait, il y a une nuance, ce ne sont pas les mêmes références. Oui c'est le prix de la référence que je recherche. Pour cela, ma difficulté est d'abord de trouver la référence dans la table complète, puis le prix associé.
 
Bonjour,

Vous aurez noté que j'ai nommé 'Datas' la plage A1:N16 et traiter une seule 'Table' de départ.

Il y a d'autres possibilités, bien entendu 🙂
Si vous avez des questions sur la requête, n'hésitez pas à poster.

Cordialement
 
Dernière édition:
Bonjour à tous,

Je l'avais fait en faisant trois requêtes (une par tableau, les mettre au propre, puis les ajouter). Apres je me suis dit que sur 100 tableaux, c'était du taf !!
J'ai cherché sur ton fichier, mais ta façon de faire, je ne connais pas.
Comment fait-on les étapes avec les listes ? En littéral, ou à la souris ?
Si tu veux partager ton savoir ....
 
Re,

C'est vrai que c'est fait par la barre de formule de l'éditeur PQ ou dans l'affichage avancé.
J'en édite ici un exemplaire commenté.
L'étape la plus délicate est celle de la sélection des bonnes colonnes. Il faut trouver un 'truc' pour ne conserver que les colonnes de référence et de valeur.
J'ai décidé d'utiliser leur index de position, d'en faire une liste et de ne conserver que celles dont le reste de la division par 5 était 1 ou 4.
Comme je ne suis pas un gros matheux, il y a peut-être mieux.
let
Source = Excel.CurrentWorkbook(){[Name="Datas"]}[Content],
// Sauter la ligne d'entête qui est inutile
#"Sauter première ligne" = Table.Skip(Source,1),
// retourner la liste des noms de colonnes pour utilisation ultérieure
#"Noms colonnes" = Table.ColumnNames(#"Sauter première ligne"),
// Création d'une liste numérique de 1 au nombre de colonnes de la table.
// Sélection des colonnes dont le reste de l'index ordinal divisé par 5 est 1 ou 4.
// pour ne conserver que les colonnes de référence et de valeur
#"Colonnes a conserver" = List.RemoveNulls( List.Transform({1..List.Count(#"Noms colonnes")},each let M=Number.Mod(_,5) in if M=1 or M=4 then #"Noms colonnes"{_-1} else null)),
// Faire des sous listes des noms de colonnes à conserver afin de les traiter par 2.
#"En sous-listes" = List.Split( #"Colonnes a conserver",2),
// Sélectionner les colonnes de la table d'origine correspondant à nos sous listes

#"En Tables" = List.Transform(#"En sous-listes",each Table.SelectColumns(#"Sauter première ligne",_)),
// Transformer les tables en lignes et les combiner ensemble.
#"En Lignes" = List.Combine( List.Transform( #"En Tables",Table.ToRows)),
// Transformer la liste des lignes en table, avec les nouveaus noms de colonnes.
Resultat = Table.FromRows(#"En Lignes",{"Référence", "Valeur"})
in
Resultat
En relisant je vois que j'aurai pu faire la liste des positions de colonnes par {0..List.Count(#"Noms colonnes")-1}
Ce qui aurait évité le -1 dans la sélection du nom (#"Noms colonnes"{_-1})
L'étape "Colonnes à conserver" devenant :
= List.RemoveNulls( List.Transform({0..List.Count(#"Noms colonnes")-1},each let M=Number.Mod(_,5) in if M=0 or M=3 then #"Noms colonnes"{_} else null))

[Edition]ai remplacé List.Select par List.RemoveNulls[/Edit]
 
Dernière édition:
Bonjour à tous,

Une proposition par formule.

C'est une formule matricielle à valider par Ctrl+Maj+Entrée (en Excel 2019, la validation matricielle n'est peut-être pas requise).
VB:
=INDIRECT(JOINDRE.TEXTE("";VRAI;SI(A$1:K$16=A20;ADRESSE(LIGNE(A$1:K$16);COLONNE(A$1:K$16)+3);"")))
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
104
Retour