XL 2016 Recherche V avec table matrice variable

lilibloom

XLDnaute Nouveau
Bonjour!!!

J'ai un petit souci sur une formule.
J'ai un tableau avec diverses colonnes, dont une colonne H avec divers marchés (Hommes, Food, accessoires, maison, etc)

J'ai dans ma colonne N :

=RECHERCHEV(M4;Accessoires!$A$6:$A$104;1;FAUX)

Qui va chercher dans un des onglets de mon fichier excel "accessoires" la donnée en M4.

Mais le pb est que j'ai divers onglets "Food", "Hommes", "Maison" ... etc et ma formule Recherche V ne me permet pas d'adapter la table matrice en fonction de ce que j'ai en colonne H pour aller chercher dans le bon onglet de mon fichier excel.

Je ne sais pas si mon pb est clair haha ?

Merci par avance à vous :)
 
Solution
Bonsoir lilibloom, merinos,

ton fichier en retour. :)



tableaux structurés (➯ les nouvelles lignes seront automatiquement prises en compte) :

* sur la feuille "Feuil1" : nom : TMarchés ; données en A2:F3

* sur la feuille "ACCESSOIRES" : nom : TAccessoires ; données en A2:B3

* sur la feuille "FOOD" : nom : TFood ; données en A2:B4

pour chaque tableau, la ligne 1 est celle des en-têtes de colonnes.

pour ajouter une ligne dans un tableau structuré, il suffit de saisir les données sous la dernière ligne de ce...​

soan

XLDnaute Barbatruc
Inactif
Bonjour lilibloom, Deadpool,

bienvenue sur le site XLD ! :)

juste une piste : regarde la fonction INDIRECT()

ça pourrait donner quelque chose du genre :

=SIERREUR(RECHERCHEV(M4;INDIRECT("Accessoires!$A$6:$A$104";1;0);""))

le SIERREUR() est pour éviter les valeurs #N/A (si rien n'a été trouvé).

soan
 

Deadpool_CC

XLDnaute Accro
Bonjour lilibloom, Deadpool,

bienvenue sur le site XLD ! :)

juste une piste : regarde la fonction INDIRECT()

ça pourrait donner quelque chose du genre :

=SIERREUR(RECHERCHEV(M4;INDIRECT("Accessoires!$A$6:$A$104";1;0);""))

le SIERREUR() est pour éviter les valeurs #N/A (si rien n'a été trouvé).

soan
le fichiers exemple => car il faut certainement adapter pour déduire le nom de la feuille et certainement calculer le range présent sur cette feuille
 

soan

XLDnaute Barbatruc
Inactif
@Deadpool, lilibloom,

oui, effectivement ! j'ai oublié de préciser que dans ma formule précédente, c'est évidemment le mot "Accessoires" qu'il faut « variabiliser » ; donc si par exemple le texte "Accessoires" est en A1, ça donne :​

=SIERREUR(RECHERCHEV(M4;INDIRECT($A$1&"!$A$6:$A$104";1;0);""))

après, ça sera ok aussi avec en A1 : "Food" ; "Hommes" ; "Maison"...



les caractères « $ », c'est seulement si tu dois étirer la formule ; sinon tu peux mettre :​

=SIERREUR(RECHERCHEV(M4;INDIRECT(A1&"!A6:A104";1;0);""))

soan
 

lilibloom

XLDnaute Nouveau
Helloooo,

merci beaucoup pour vos réponses :)

Je vous mets en pièce jointe un fichier exemple !!
L'objectif est que dans mon onglet "feuil1", D3 puisse comprendre qu'il faut aller chercher C3 dans l'onglet FOOD car A3 est catégorifié Food.

Je n'arrive pas avec la fonction indirect :(

encore merci à vous <3
 

Pièces jointes

  • exemple 1.xlsx
    11.2 KB · Affichages: 6

soan

XLDnaute Barbatruc
Inactif
Bonsoir lilibloom, merinos,

ton fichier en retour. :)



tableaux structurés (➯ les nouvelles lignes seront automatiquement prises en compte) :

* sur la feuille "Feuil1" : nom : TMarchés ; données en A2:F3

* sur la feuille "ACCESSOIRES" : nom : TAccessoires ; données en A2:B3

* sur la feuille "FOOD" : nom : TFood ; données en A2:B4

pour chaque tableau, la ligne 1 est celle des en-têtes de colonnes.

pour ajouter une ligne dans un tableau structuré, il suffit de saisir les données sous la dernière ligne de ce tableau ; autre possibilité : sélectionner la dernière cellule du tableau (donc la cellule du coin inférieur droit) et appuyer sur la touche TAB (Tabulation) ➯ nouvelle ligne sous le tableau (où les formules de la ligne précédente ont été automatiquement recopiées) ; y'a plus qu'à saisir les données (sans écraser les formules !).​



sur "Feuil1", formules de la ligne 2 :

en C2 : =SI(OU(A2="";B2="");"";B2&A2)

en D2 : =SI(C2="";"";"T"&NOMPROPRE(A2))

en E2 : =SI(C2="";"";SIERREUR(RECHERCHEV(C2;INDIRECT(D2);1;0);""))

en F2 : =SI(C2="";"";SIERREUR(RECHERCHEV(C2;INDIRECT(D2);2;0);""))

rappel important : la fonction SIERREUR() permet d'éviter l'affichage de #N/A si rien n'est trouvé ➯ ça fait que l'affichage est plus propre car non encombré de valeurs d'erreur #N/A.​

soan
 

Pièces jointes

  • exemple 1.xlsx
    15.6 KB · Affichages: 7

lilibloom

XLDnaute Nouveau
Bonsoir lilibloom, merinos,

ton fichier en retour. :)



tableaux structurés (➯ les nouvelles lignes seront automatiquement prises en compte) :

* sur la feuille "Feuil1" : nom : TMarchés ; données en A2:F3

* sur la feuille "ACCESSOIRES" : nom : TAccessoires ; données en A2:B3

* sur la feuille "FOOD" : nom : TFood ; données en A2:B4

pour chaque tableau, la ligne 1 est celle des en-têtes de colonnes.

pour ajouter une ligne dans un tableau structuré, il suffit de saisir les données sous la dernière ligne de ce tableau ; autre possibilité : sélectionner la dernière cellule du tableau (donc la cellule du coin inférieur droit) et appuyer sur la touche TAB (Tabulation) ➯ nouvelle ligne sous le tableau (où les formules de la ligne précédente ont été automatiquement recopiées) ; y'a plus qu'à saisir les données (sans écraser les formules !).​



sur "Feuil1", formules de la ligne 2 :

en C2 : =SI(OU(A2="";B2="");"";B2&A2)

en D2 : =SI(C2="";"";"T"&NOMPROPRE(A2))

en E2 : =SI(C2="";"";SIERREUR(RECHERCHEV(C2;INDIRECT(D2);1;0);""))

en F2 : =SI(C2="";"";SIERREUR(RECHERCHEV(C2;INDIRECT(D2);2;0);""))

rappel important : la fonction SIERREUR() permet d'éviter l'affichage de #N/A si rien n'est trouvé ➯ ça fait que l'affichage est plus propre car non encombré de valeurs d'erreur #N/A.​

soan
1000 MERCIIIII !!!

c'est top ! Tu m'as évité une recopie manuelle haha ...
Je n'aurais jamais pensé à tout ça toute seule mdr

Encore merci ça fonctionne très bien sur mon fichier :)
 

Statistiques des forums

Discussions
312 809
Messages
2 092 295
Membres
105 343
dernier inscrit
Poipi81