TOP

VLOOKUP pour combinaison selon deux conditions (VLOOKUP3)

Description

Considérons une version améliorée de la fonction VLOOKUP - VLOOKUP3, qui nous donne la possibilité de substituer des valeurs lorsque deux conditions correspondent. Cette fonction peut être utile dans les cas où nous n'avons pas de valeurs uniques dans le champ sur lequel nous devons effectuer une combinaison.


Un exemple de problème

Supposons que nous devions joindre deux tables, mais que nous n'ayons pas de valeurs uniques :

Comme vous pouvez le constater, nous avons des emprunteurs portant les mêmes noms de famille et des contrats de crédit portant les mêmes numéros. Combiner avec une fonction normale VLOOKUP sera problématique car il ne correspond qu'à une seule condition à la fois et uniquement à la première valeur trouvée.

Refaisons notre VLOOKUP habituel pour remplacer les valeurs selon deux conditions.

VBA code pour la fonction VLOOKUP3

Ouvrir le menu Service - Macro - Editeur Visual Basic , insérez le nouveau module (menu Insert - Module ) et copiez-y le texte de celui-ci les fonctions:

Function VLOOKUP3(Table1       As Range, _
                  SearchValue1 As Variant, _
                  Table2       As Range, _
                  SearchValue2 As Variant,_
				  ResultColumn As Range)
  'moonexcel.com.ua
  Dim i As Integer
               
  For i = 1 To Table1.Rows.Count
    If Table1.Cells(i, 1) = SearchValue1 Then
      If Table2.Cells(i, 1) = SearchValue2 Then
        VLOOKUP3 = ResultColumn.Cells(i, 1)
        Exit For
      End If
    End If
  Next i
                
End Function 

Fermer l'éditeur Visual Basic et revenez à Excel.

Utilisation de la fonction

Maintenant en Assistants de fonctions dans la catégorie Défini par l'utilisateur vous pouvez trouver notre fonction VLOOKUP3 et l'utiliser. La syntaxe de la fonction est la suivante :

=VLOOKUP3( plage1 ; valeur_recherchée1 ; plage2 ; valeur_recherchée2 ; la plage à partir de laquelle nous substituons les valeurs )

Autrement dit, afin de remplacer correctement le montant du prêt par le nom de famille et le numéro de contrat dans la cellule E15 vous devrez saisir :

=VLOOKUP3($A$2:$A$11; A15; $B$2:$B$11; B15; $C$2:$C$11)

N'oubliez pas non plus de fixer les fourchettes avec un signe dollar ($) , afin de ne pas manquer les plages lors de la copie de la formule (pour une correction rapide, vous pouvez également utiliser la touche F4).

Articles sur le sujet :