XL 2016 RECHERCHE VALEUR SELON PARAMETRE

yvantof

XLDnaute Nouveau
Bonjour à tous,
je dois croiser 2 bases de données (2 tables) et d'habitude j'use et j'abuse de la fonction RECHERCHEV.
Dans ce cas précis cela ne fonctionne pas car la valeur que je veux afficher dépend de 2 paramètres au lieu d'un (cf fichier joint).
Il s'agit dans ce cas précis de molécules chimiques que l'on peut retrouver dans des ingrédients.
Dans l'onglet "BASE", j'ai:
- en colonne 1 le nom de l'ingrédient (qui peut être un numéro CAS xxxx-xx-x ou un nom classique)
- en colonne 2 le nom de la substance dont le % est à contrôler par rapport à l'onglet BASE 2
- en colonne 3 le % de la substance dont le % est à contrôler par rapport à l'onglet BASE 2
la dernière colonne en rouge est la valeur que je veux remonter provenant de la BASE 2: il faut donc que je ramène la bonne valeur, en fonction de l'ingrédient.
si la substance couplé à l'ingrédient est absente, la valeur est "ASBENT"
J'espère avoir été clair et trouver comme toujours sur ce forum, de l'aide

Pas sur que du VBA soit nécessaire je ne sais pas
Merci d'avance à ceux qui voudront bien se pencher sur ce petit pb !
Bien cordialement
Yvantof
 

Pièces jointes

  • RECHERCHE.xlsx
    10 KB · Affichages: 4

yvantof

XLDnaute Nouveau
Bonjour Jocelyn,
Mon niveau sur excel est franchement débutant, d'où mes questions
je te remercie de t'être penché sur le sujet mais j'ai du louper quelque chose car sur ton exemple cela fonctionne bien, mais pas sur le mien (joint)
Tout remonte en "absent" sauf une substance.
Pour information il s'agit de constituants d'huiles essentielles; l'onglet "BASE" est la base de données officielle et la "BASE 2", mes données
Le but étant, sur la BASE 1 d'identifier ce que j'ai oublié !
bonne journée
Yvantof
 

Pièces jointes

  • RECHERCHE-2.0.xlsx
    13.8 KB · Affichages: 2

Jocelyn

XLDnaute Barbatruc
Bonjour

A priori la formule fonction suivant ton fichier tu attends par exemple :

en ligne 3 tu attends absent or pour l'ingrédient 8008-56-8 avec la substance 106-23-0 et le % 1 cela existe en ligne 5 de l'onglet Base 2

en ligne 9 de l(onglet base 0,3000000119209 or cette valeur ne ressort pour la substance 80-56-8 que pour l'ingrédient 8000-28-0 et pas pour l'ingredient 8008-56-8

au vu de ces exemple je veux bien reprendre la formule pour essayer de correspondre a ton attente mais il me faut un peu plus d'info

Cordialement
 

yvantof

XLDnaute Nouveau
Bonjour et merci pour ta réponse
j'attends comme valeur en ligne 3 de l'onglet "BASE" 0.1% car dans l'onglet BASE2, on trouve bien pour le numéro 8008-56-8, la substance 106-23-0 à 0.1%
Pour la ligne 9, j'attends pour la substance 80-56-8 la valeur 2.5 et pas 0.30000012% j'ai mal recopié désolé
Ci-joint le fichier corrigé sachant que la colonne "CONTROLE BASE2" est juste à titre indicative
merci bcp
yvantof
 

Pièces jointes

  • RECHERCHE-3.0.xlsx
    14.7 KB · Affichages: 5

yvantof

XLDnaute Nouveau
Bonjour Dugenou,
OUI le % n'est pas un critère de RECHERCHE, mais uniquement une information que je veux remonter le cas échéant.

j'ai essayé de l'adapter à mon fichier mais sans succès
En plus je vois, mais c'est franchement un hasard, que le nb de lignes entre BASE et BASE 2 est identique
en réalité, il est de 17756 dans l'onglet BASE et 4518 dans l'onglet BASE 2
J'ai donc corrigé la formule comme suit:
SIERREUR(INDEX('BASE 2'!$C$2:$C$4518;EQUIV(A2&B2;'BASE 2'!$A$2:$A$4518&'BASE 2'!$B$2:$B$4518;0));"absent")
tout ressort en "ABSENT".
Désolé, je suis franchement nul en excel et je pense zapper quelque chose
Merci pour ta patience !
Yvan
 

Jocelyn

XLDnaute Barbatruc
re,

As tu validé matriciellement la formule c'est a dire avec les touches CTRL, Maj (au dessus de CTRL) et entrée sur le fichier que tu as posté au message 5 les crochets étaient bien présent mais attention il ne faut pas les taper excel doit les mettre tout seul.

Maintenant si la validation a bien été réalisée tu peux tester de modifier la formule de cette façon

=INDEX('BASE 2'!$C$2:$C$4518;EQUIV(A2&B2;'BASE 2'!$A$2:$A$4518&'BASE 2'!$B$2:$B$4518;0))

est nous dire quel type d'erreur ressort

Après sans voir le fichier réel pas facile de t'aiguiller plus

Cordialement
 

Discussions similaires