2017-06-12 4 views
0

Ich habe es geschafft, durch zwei Spalten zu durchlaufen, um zu finden, ob der Wert in einer Spalte in der anderen Spalte vorhanden ist.VBA Excel, finde entsprechende Werte in Spalten

Jetzt ist der nächste Schritt zu bestimmen, ob die Werte in beiden Spalten den gleichen Wert in der Zelle auf der rechten Seite des Werts enthalten.

Das Bild des gewünschten Ergebnisses und das aktuelle Ergebnis sollte erklären, was ich erreichen möchte.

P.S. Verwechseln Sie den Code nicht, da sich die Spalten in meinem Arbeitsbuch auf zwei verschiedenen Blättern befinden.

enter image description here

Ich habe versucht, zweimal durch die Säulen Looping, sobald ich die Bestätigung eines Spiels, aber an diesem Punkt, Im gerade verloren .... sorry

Sub loopDb() 

    Set dbsheet1 = ThisWorkbook.Sheets("Sheet1") 
    Set dbsheet2 = ThisWorkbook.Sheets("Sheet2") 

    lr1 = dbsheet1.Cells(Rows.Count, 1).End(xlUp).Row 
    lr2 = dbsheet2.Cells(Rows.Count, 1).End(xlUp).Row 

    For x = 2 To lr1 
     act1 = dbsheet1.Cells(x, 1) 

     For y = 2 To lr2 
      act2 = dbsheet2.Cells(y, 1) 

      If Not dbsheet2.Cells(y, 3).Value = "Match" Then 
       'Only compare if previoulsy not done or resulted in "No match" 
       If act2 = act1 Then 
        dbsheet2.Cells(y, 3).Value = "Match" 

        If dbsheet2.Cells(y, 3).Value = "Match" Then 
         For i = 2 To lr1 
          If dbsheet2.Cells(y, 1).Value = dbsheet2.Cells(i, 1).Value Then 
           dbsheet2.Cells(y, 4).Value = "Match" 
          Else 
           dbsheet2.Cells(y, 4).Value = "No match" 
          End If 
         Next i 
        End If 

       Else 
       dbsheet2.Cells(y, 3).Value = "No match" 
       End If 
      End If 
     Next y 

    Next x 


End Sub 
+0

Warum nicht 'application.worksheetfunction.match (col1value, col2,0)' und 'und' in Ihrer Logik, so' wenn match1 UND match2 then' –

Antwort

2

Wie Nathan_Sav wies darauf hin, , können Sie Ihr Problem mit der Match-Formel lösen.

Mit diesem MATCH formula können Sie ganz ohne VBA arbeiten.

Formel zur Anpassung col1 und col2:

=IFERROR(IF(MATCH(sheet1!A1;sheet2!$A$1:$A$10;0)>=0;"Match");"No match") 

Das Spiel Formel gibt den Index, in dem die Übereinstimmung gefunden wurde. Ein Fehler sonst. Um die Wörter "Übereinstimmung" und "Keine Übereinstimmung" zu erhalten, benötigen wir die Formel IF und IFERROR.

Formel zur Anpassung von sowohl spalte1 & val1 und Col2 & val 2

{=IFERROR(IF(MATCH(sheet1!A1&sheet1!B1;sheet2!$A$1:$A$10&sheet2!$B$1:$B$10;0)>=0;"Match");"No match")} 

die beiden Spalten von Tabelle2 Die Kombination macht die Verwendung einer Anordnung Formel erforderlich. Um das zu erreichen, drücken Sie Strg + Shift + Enter.

Ich hoffe, das hilft

Verwandte Themen