2 votes

Excel Vlookup deux conditions

Il faut chercher dans les tableaux, on a trouvé exactement les mêmes lignes dans ces deux tableaux.

enter image description here

Entre ces deux tables, j'ai une recherche VLookup qui fonctionne, mais j'ai besoin d'une condition "ET ces colonnes sont également égales sur cette ligne recherchée".

Donc, dans cet exemple, je dois montrer seulement :

1|A

5|E

7|G

(parce que 4|DDDD n'a pas d'équivalent dans la première table)


reformuler la question pour la demander :

J'ai besoin de comparer deux tableaux et j'ai trouvé les mêmes lignes (il s'agit de deux tableaux d'exportation). J'ai un Vlookup qui fonctionne entre ces deux tableaux (colonne du milieu). Mais j'ai également besoin d'une deuxième condition pour écrire dans cet exemple de Vlookup.

premier tableau :

entrepriseA | valeur1

entrepriseA | valeur 2

deuxième table (il suffit de changer deux colonnes) :

valeur 1 | entrepriseD

valeur22 | sociétéA

valeur1 | sociétéA

Besoin de cette information :

companyA | value1 -- car cette ligne est la même pour les deux tables

1voto

Dave Points 25050

Votre message mentionne spécifiquement une formule de feuille de calcul, mais je ne connais pas très bien Excel. Cependant, comme solution de rechange (puisque vous n'avez pas encore eu de réponse), je vous propose ce VBa.

Cela devrait vous permettre de commencer. Veuillez d'abord créer une copie du fichier, car VBa n'a pas d'option d'annulation ! Puisque vous mentionnez dans vos commentaires que vous comprenez un peu de VBa, j'espère que ce qui suit est clair et facilement modifiable pour répondre à vos besoins !

Option Explicit
Sub DoTheThing()

Dim row As Integer
row = 2

Dim innerRow As Integer
innerRow = 2

Range("G:G").Clear

Do While Range("A" & row).Value <> ""

    Dim company As String
    Dim companyValue As String

    company = Range("A" & row).Value
    companyValue = Range("B" & row).Value

    Do While (Range("D" & innerRow).Value <> "")

        If Range("D" & innerRow).Value = companyValue And Range("E" & innerRow).Value = company Then
            Range("G" & row).Value = Range("G" & row).Value & "Matches row " & innerRow & ". "
            Range("G" & innerRow).Value = Range("G" & innerRow).Value & "Matches row " & row & ". "
            exit do ' THIS IS NOT TESTED
        End If
        innerRow = innerRow + 1
    Loop
innerRow = 2
row = row + 1
Loop

End Sub

Les données ressemblaient :

enter image description here

Et après le passage de VBa :

enter image description here

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X