我设法遍历两列,以查找另一列中是否存在一列中的值。
现在,下一步是确定两列中的值是否在值右侧的单元格中包含相同的值。
期望结果和当前结果的图片应该解释我想要实现的目标。
P.S。不要被代码混淆,因为我的工作簿中的列位于两个不同的表上。
一旦我得到确认匹配,我已尝试在列中循环两次,但此时,我只是输了......对不起
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 :(得分:2)
正如Nathan_Sav指出的那样,你可以用匹配公式来解决你的问题。
此MATCH
formula可让您在没有vba的情况下完全工作。
匹配col1和col2的公式:
jsonOut = open('test.json', 'w')
jsonOut.write(json.dumps(j))
匹配公式返回找到匹配项的索引。否则会出错。获得单词"匹配"和#34;没有匹配"我们需要=IFERROR(IF(MATCH(sheet1!A1;sheet2!$A$1:$A$10;0)>=0;"Match");"No match")
和IF
公式。
col1和amp;的匹配公式val1和col2& val 2
IFERROR
组合两列sheet2可以使用必要的数组公式。要使其工作,请按Ctrl + Shift + Enter。
我希望这会有所帮助