Recherche V avec formules appelant plusieurs lignes

Bonjour,

j'ai besoin d'aide sur plusieurs formules de recherche V... Je n'arrive pas à rechercher une valeur dans un autre tableau qui fasse référence à plusieurs lignes (mais avec toujours un dénominateur commun).

Exemple :

1) je souhaite dans un tableau mettre la valeur du prix minimum de plusieurs références dans un autre tableau.

>> Référence commune dans le tableau 1: DP-VE-GL-1B-0054

>> Valeur du prix minimum à rechercher dans un autre tableau 2 :

Référence groupéePRIX FINAL AFFICHE
DP-VE-GL-1B-005461,11
DP-VE-GL-1B-005473,71
DP-VE-GL-1B-005486,31
DP-VE-GL-1B-005486,31
DP-VE-GL-1B-005486,31
AR-VE-GL-1B-076489
AR-VE-GL-1B-076452
AR-VE-GL-1B-076465
AR-VE-GL-1B-076442

>> La valeur recherchée à insérer dans le tableau 1 associée à la référence "DP-VE-GL-1B-0054" est le prix minimum = 61,11€

2) je souhaite récupérer dans un tableau plusieurs informations associées à une référence, qui contient des informations sur plusieurs lignes.

>> Référence commune dans le tableau 1: DP-VE-GL-1B-0054

>> Valeurs concaténées et regroupées de plusieurs valeurs à rechercher dans un autre tableau 2 :

Référence groupéeFourchette surfaceFourchette épaisseur
DP-VE-GL-1B-00541,91-2,200,9-1,7
DP-VE-GL-1B-00541,31-1,61,2-1,4
DP-VE-GL-1B-00541,61-1,91,5-1,7
DP-VE-GL-1B-00541,91-2,200,9-1,7
DP-VE-GL-1B-00541,91-2,200,9-1,7
DP-VE-GL-1B-00541,91-2,200,9-1,7
AR-VE-GL-1B-07641,31-1,60,9-1,7
AR-VE-GL-1B-07641,31-1,60,9-1,7
AR-VE-GL-1B-07641,91-2,200,9-1,7

>> La valeur recherchée à insérer dans le tableau en face de la référence "DP-VE-GL-1B-0054" est une concaténation de termes génériques (en gras ci-dessous) et des valeurs du tableau, dans l'ordre croissant des surfaces :

Surface de 1.31 à 1.6m2 => Epaisseur de 1.2 à 1.4mm

Surface de 1,61 à 1.9m2 => Epaisseur de 1.5 à 1.7mm

Surface de 1.91 à 2.20m2 => Epaisseur de 0.9 à 1.1mm

et dans l'ordre croissant des surfaces, c'est-à-dire que l'ordre des lignes ne sera pas le suivant :

Surface de 1.91 à 2.20m2 => Epaisseur de 0.9 à 1.1mm

Surface de 1.31 à 1.6m2 => Epaisseur de 1.2 à 1.4mm

Surface de 1,61 à 1.9m2 => Epaisseur de 1.5 à 1.7mm

Merci beaucoup de vos retours !!

Virginie

Bonjour VirginieD,

Voyez si la solution proposée dans le fichier joint peut vous aider

16virginied.xlsx (6.61 Ko)

Choisir la référence en A2

Salut Virginie,

1/ Voici la formule pour ta première demande :

=MIN(SI(A:A=A2;B:B))

En imaginant que ton tableau donné précédemment se trouve dans les colonnes A et B et qu'en A2 se trouve "DP-VE-GL-1B-0054", à adapter à ton cas bien évidemment.

Attention, c'est une formule matricielle donc à valider avec CTRL+ SHIFT + ENTRÉE

2/ Je n'ai pas bien saisi ta demande... Tu souhaites qu'en fonction de ta référence souhaité, t'affiches les surfaces par ordre croissant avec les épaisseurs liées ?

Bonne journée et bonnes fêtes,

Baboutz

EDIT : Oh coucou @njhub, plus rapide ! En ouvrant ton fichier, ta formule en B2 ne fonctionne pas m'affiche un #NOM?

Bonjour Baboutz

EDIT : Oh coucou @njhub, plus rapide ! En ouvrant ton fichier, ta formule en B2 ne fonctionne pas m'affiche un #NOM?

Remarque : Cette fonctionnalité est uniquement disponible sur Windows ou Mac si vous avez Office 2019, ou si vous avez souscrit un abonnement Office 365. Si vous êtes abonné à Office 365,vérifiez que vous avez la dernière version d’Office.

Essayez avec :

=MIN.SI.ENS(L3:L11;M3:M11;">"&1)

Essayez avec :

=MIN.SI.ENS(L3:L11;M3:M11;">"&1)

Même résultat malheureusement...

=MIN(SI(A:A=A2;B:B))

Cette formule pas plus efficace ? Ne nécessite pas une colonne en plus...

Merci à tous les deux @njhub et @babouts pour vos réponses

Effectivement, la formule "=MIN(SI(A:A=A2;B:B))" est plus simple et ne nécessite pas de colonne supplémentaire.

Concernant ma seconde demande, il faudrait que les lignes apparaissent dans l'ordre croissant de la surface :

Surface de 1.31 à 1.6m2 => Epaisseur de 1.2 à 1.4mm

Surface de 1,61 à 1.9m2 => Epaisseur de 1.5 à 1.7mm

Surface de 1.91 à 2.20m2 => Epaisseur de 0.9 à 1.1mm

... le tout dans une même cellule, et passant à la ligne à la fin de chaque ligne de surface

Est-ce possible ?

Merci encore de vos retours !

Virginie

le tout dans une même cellule, et passant à la ligne à la fin de chaque ligne de surface

Pour avoir l'affichage selon vos désirs, collez cette formule dans la cellule de votre choix :

=SI(ESTERREUR(PETITE.VALEUR(O$15:O$23;1));"";CONCATENER("Surface de ";GAUCHE(INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;1);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;1);N$15:N$23;0)+14);1)-1);" à ";STXT(INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;1);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;1);N$15:N$23;0)+14);1)+1;4);" m² => Epaisseur de ";GAUCHE(INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;1);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;1);N$15:N$23;0)+14);1)-1);" à ";STXT(INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;1);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;1);N$15:N$23;0)+14;1))+1;4);" mm"))&CAR(10)&SI(ESTERREUR(PETITE.VALEUR(O$15:O$23;2));"";CONCATENER("Surface de ";GAUCHE(INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;2);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;2);N$15:N$23;0)+14);1)-1);" à ";STXT(INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;2);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;2);N$15:N$23;0)+14);1)+1;4);" m² => Epaisseur de ";GAUCHE(INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;2);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;2);N$15:N$23;0)+14);1)-1);" à ";STXT(INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;2);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;2);N$15:N$23;0)+14;1))+1;4);" mm"))&CAR(10)&SI(ESTERREUR(PETITE.VALEUR(O$15:O$23;3));"";CONCATENER("Surface de ";GAUCHE(INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;3);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;3);N$15:N$23;0)+14);1)-1);" à ";STXT(INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;3);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("K"&EQUIV(PETITE.VALEUR(O$15:O$23;3);N$15:N$23;0)+14);1)+1;4);" m² => Epaisseur de ";GAUCHE(INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;3);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;3);N$15:N$23;0)+14);1)-1);" à ";STXT(INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;3);N$15:N$23;0)+14;1);TROUVE("-";INDIRECT("L"&EQUIV(PETITE.VALEUR(O$15:O$23;3);N$15:N$23;0)+14;1))+1;4);" mm"))
Rechercher des sujets similaires à "recherche formules appelant lignes"