Recherche V selon 2 critères [Résolu/Fermé]

Signaler
Messages postés
389
Date d'inscription
jeudi 11 septembre 2014
Statut
Membre
Dernière intervention
11 mai 2020
-
Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
-
Bonjour,

Je voudrai faire un recherché V pour récupérer une valeur selon 2 critères : code postal et code article. Exemple : un code article est present pour plusieurs codes postaux.

Est-ce possible ?

merci par avance

3 réponses

Messages postés
12387
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
10 juillet 2020
1 922
Bonjour Kivanc

Possible avec une formule matricielle (à valider par CTRL+MAJ+Entrée, la formule se met alors automatiquement enter {} )

=INDEX(Plage valeur à retourner;
EQUIV(1;(plage critere 1= critere1 ou adresse de cellule crit 1)
* (plage critere 2 = critere2 ou adresse de cellule crit 2);0))

Cdlmnt
Via

17
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61706 internautes nous ont dit merci ce mois-ci

Messages postés
1769
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
15 juin 2020
500
Bonjour,

C'est possible en utilisant la fonction recherchevma (= recherchev multiples arguments) que j'ai développée (voir code ci-dessous).

RECHERCHEVMA
Cette fonction renvoie la valeur correspondante à une colonne d’une table en fonction des valeurs cherchées.

La syntaxe de cette fonction est :
RECHERCHEVMA (table ; no_index_col; valeur_cherchée _1 ; valeur_cherchée _2 ; … ; valeur_cherchée _n)

• table: Plage de cellules qui contient les données. Vous pouvez utiliser une référence à une plage (par exemple, A2:D8) ou un nom de plage. C’est sur les valeurs des colonnes 1 à n de table respectives à chaque argument de valeur_cherchée, que portent les différentes valeurs cherchées. Ces valeurs peuvent être du texte, des nombres ou des valeurs logiques.

• no_index_col: Numéro de la colonne de l’argument table dont la valeur correspondante doit être renvoyée. Si l’argument no_index_col est égal à 1, la fonction renvoie la valeur de la première colonne de l’argument table ; si l’argument no_index_col est égal à 2, la valeur de la deuxième colonne de l’argument table est renvoyée, et ainsi de suite.

• valeur_cherchée_i: La valeur à chercher dans la colonne i de la table selon la position i de l’argument valeur_cherchée. Le nombre d’arguments pour valeur_cherchée peut varier de 1 à n. Si une des valeurs cherchées n’est pas trouvée dans l’argument table, la fonction RECHERCHEVMA renvoie la valeur d’erreur #N/A.

CODE

Function RECHERCHEVMA(table As Range, indice_colonne As Integer, ParamArray arguments())

RECHERCHEVMA = CVErr(xlErrNA)
i_lig_max = table.Worksheet.UsedRange.Rows.Count
i_arg_max = UBound(arguments)
For i_lig = 1 To i_lig_max
For i_arg = 0 To i_arg_max
If table.Columns(i_arg + 1).Rows(i_lig) <> arguments(i_arg) Then Exit For
Next
If i_arg > UBound(arguments) Then
RECHERCHEVMA = table.Columns(indice_colonne).Rows(i_lig)
End If
Next

End Function
--
 
Messages postés
2843
Date d'inscription
mercredi 11 février 2009
Statut
Contributeur
Dernière intervention
10 juillet 2020
147
Bonjour,

oui, c'est possible utilisant la fonction CONCATENER(). Tu concatènes la référence et le code postal dans ton RECHERCHEV() et tu recrées la même concaténation dans le tableau où tu fais ta recherche.