Conditionner une fonction recherche

S

steph

Guest
Bonjour à tous. Voila mon problème :
je veux le résultat de ma fonction recherche que si plusieurs arguments sont vérifier par rapport à ma table matrice. C'est pas evident à expliquer, mais pour être plus clair, dans ma table matrice il y a des doublons sur certaines colonnes et donc à partir de la je veux aussi que la verif s'effectue sur une autre colonne voir si le doublon existe toujours sur une troisième colonne pour arriver à une valeur unique me permettant ensuite d'avoir une seule référence pour ma recherche.
Par avance, merci
 
C

Celeda

Guest
Bonjour,

Avec :

un Index (formule Index)

et

une Concaténation (formule & pour dire et cette et cette colonne ect..)

et

une Equi (Match en anglais Equiv en Francais = equivalente à la donnée que l'on recherche à retourner)

et une Gestion d'Erreur (ISNA / ESTNA = "" = vide retourne un vide dans la cellule si non trouvée au lieu de faire apparaître le #NA)

et le tout en formule matricielle : ctrl shift enter (parce que l'on compare des Matrices entre elles)

La formule décortiquée:

=IF(ISNA(INDEX(Matrice!E4:E12;MATCH(Exemple!A4:A12&Exemple!B4:B12&Exemple!C4:C12&Exemple!D4:D12&E4:E12;Matrice!A4:A12&Matrice!B4:B12&Matrice!C4:C12&Matrice!D4:D12&Matrice!F4:F12;0)));"";(INDEX(Matrice!E4:E12;MATCH(Exemple!A4:A12&Exemple!B4:B12&Exemple!C4:C12&Exemple!D4:D12&E4:E12;Matrice!A4:A12&Matrice!B4:B12&Matrice!C4:C12&Matrice!D4:D12&Matrice!F4:F12;0))))


SI(ESTNA( = gestion d'erreur

Index(Matrice!E4:E12= on va chercher dans la feuille Matrice la colonne Age

MATCH(Exemple!A4:A12&Exemple!B4:B12&Exemple!C4:C12&Exemple!D4:D12&E4:E12; = Equivalente dans la feuille Exemple aux colonnes
que l'on concatène soit :

le nom, le prémon, la ville, le cp et la colonne créee (de part et d'autre des feuilles) pour l'occasion le No pour pouvoir distinguer les doublons soit identifiée No
(à remarquer que si un item est mal inscrit, la gestion d'erreur ESTNA opère et retourne le "" vide au lieu d'une donnée erronée _ voir nogent au lieu de nogent sur marne en C4 dans Matrice


;Matrice!A4:A12&Matrice!B4:B12&Matrice!C4:C12&Matrice!D4:D12&Matrice!F4:F12 = Match avec la feuille Matrice équivalente aux mêmes intitulés de colonnes que la feuille Exemple


0)))) = retourne Vrai

Celeda
 

Pièces jointes

  • Monprobleme_Index.zip
    3.1 KB · Affichages: 9
B

Bernard

Guest
Bonjour Steph et Celeda

Pour savoir si les lignes sont identique, j'ai fait vérifier les quatre données connues (Nom,Prénom,Ville, Code postal). Cela suppose bien sûr que les enregistrements d'un tableau à l'autre sont identiques.

La macro se déclenche dés que la feuille Exemple est activée.

Une première boucle passe en revue les enregistrements de la feuille Exemple. A chaque enregistrement, une seconde passe en revue les enregistrements de la feuille Matrice et vérifie que les quatre données à vérifier sont identiques. Si c'est le cas elle transfère l'âge de la feuille Matrice dans la feuille Exemple.

Cordialement

Bernard
 

Pièces jointes

  • ProblemeSteph.zip
    9.4 KB · Affichages: 15

Discussions similaires

Statistiques des forums

Discussions
313 031
Messages
2 094 573
Membres
106 054
dernier inscrit
Mohajer