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ée | PRIX FINAL AFFICHE |
DP-VE-GL-1B-0054 | 61,11 |
DP-VE-GL-1B-0054 | 73,71 |
DP-VE-GL-1B-0054 | 86,31 |
DP-VE-GL-1B-0054 | 86,31 |
DP-VE-GL-1B-0054 | 86,31 |
AR-VE-GL-1B-0764 | 89 |
AR-VE-GL-1B-0764 | 52 |
AR-VE-GL-1B-0764 | 65 |
AR-VE-GL-1B-0764 | 42 |
>> 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ée | Fourchette surface | Fourchette épaisseur |
DP-VE-GL-1B-0054 | 1,91-2,20 | 0,9-1,7 |
DP-VE-GL-1B-0054 | 1,31-1,6 | 1,2-1,4 |
DP-VE-GL-1B-0054 | 1,61-1,9 | 1,5-1,7 |
DP-VE-GL-1B-0054 | 1,91-2,20 | 0,9-1,7 |
DP-VE-GL-1B-0054 | 1,91-2,20 | 0,9-1,7 |
DP-VE-GL-1B-0054 | 1,91-2,20 | 0,9-1,7 |
AR-VE-GL-1B-0764 | 1,31-1,6 | 0,9-1,7 |
AR-VE-GL-1B-0764 | 1,31-1,6 | 0,9-1,7 |
AR-VE-GL-1B-0764 | 1,91-2,20 | 0,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
Choisir la référence en A2
- Messages
- 1'025
- Excel
- 2016 FR // 365
- Inscrit
- 19/04/2019
- Emploi
- Étudiant en 5e année d'école d'Ingénieur
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...
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)
- Messages
- 1'025
- Excel
- 2016 FR // 365
- Inscrit
- 19/04/2019
- Emploi
- Étudiant en 5e année d'école d'Ingénieur
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"))