【发布时间】:2014-04-10 03:23:40
【问题描述】:
如果另外两列匹配,我想比较 excel 中的两列。
A B C D
$10 1234D $40 100D
$20 1235D $10 1234D
$30 122D $20 1235D
$40 1222D $30 1222D
首先我需要比较 col A 和 C 如果在 col C 中找到任何匹配项,那么我需要比较 B 和 D 是否匹配。示例我在 A 中有 10 美元,它的 ID 是 1234D。我需要在 C 中比较相同的值。如果我在 C 中找到 10 美元但它的 id 不是 1234D,我需要在另一列中显示不匹配的值。
我可以像下面那样匹配 A 和 C。但是我对如何比较 B 和 D 之后感到困惑?我是 excel vba 的新手,如果有人帮助我这样做,我将不胜感激。
Function Find_Matches()
Dim CompareRange As Variant, SelectionRange As Variant, x As Variant, y As Variant
' compare the selection.
Sheets("Menu").Activate
Set SelectionRange = Range("A2:A6")
Set CompareRange = Range("C2:C6")
' Loop through each cell in the selection and compare it to
' each cell in CompareRange.
For Each x In SelectionRange
For Each y In CompareRange
If x = y Then x.Offset(0, 4) = True
Next y
Next x
End Function
【问题讨论】:
-
您使用宏而不是公式是否有原因?简单公式:
=IF(AND(IF(A2=C2, TRUE, FALSE), IF(B2=D2, TRUE, FALSE), TRUE, FALSE))然后根据需要向下拖动公式。此外,如果您需要比较多行,请考虑使用VLOOKUP -
谢谢,但我需要在 vba 中完成。
-
结果应该是什么?您只想在 E 列中写入
True/False?