[英]Compare two columns in a table in Excel
有没有办法比较动态表中长度不同的列并突出显示不匹配的列?
我需要检查 B 列中的值是否在 A 列的某处匹配,如果没有,则突出显示该单元格,但如果单元格为空,我不想突出显示它。 我还需要一个变量,如果 B 列(除了空单元格)中的所有值在 A 列中都匹配以触发如下所示的刷新,则该变量变为 True:
Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.RefreshAll
End Sub
提前致谢!
编辑:
我现在已经尝试过了,我很接近,但它与我想要的完全相反,代码突出显示了 B 中存在于 A 中的单元格。我不知道如何更改它。 我试图反转 function。
Sub CompareAndHighlight()
Dim rng1 As Range, rng2 As Range, i As Long, j As Long
For i = 1 To Sheets("Mätplan").Range("A" & Rows.Count).End(xlUp).Row
Set rng1 = Sheets("Mätplan").Range("A" & i)
For j = 1 To Sheets("Mätplan").Range("B" & Rows.Count).End(xlUp).Row
Set rng2 = Sheets("Mätplan").Range("B" & j)
If (StrComp(Trim(rng1.Text), Trim(rng2.Text), vbTextCompare) = 0) Then
rng2.Interior.Color = RGB(255, 255, 0)
'rng2.Interior.ColorIndex = xlNone
Else
'rng2.Interior.Color = RGB(255, 255, 0)
'rng2.Interior.ColorIndex = xlNone
End If
Set rng2 = Nothing
Next j
Set rng1 = Nothing
Next i
End Sub
使用条件格式突出显示匹配项:
=IFERROR(IF(AND(LEN(B2)>0,(MATCH(B2, A$2:A$1000, 0)>0)),TRUE),FALSE)
使用条件格式突出显示失败的匹配:
=IFERROR(IF(LEN(B2)>0,IF(MATCH(B2,$A$2:$A$1000,0)>0,FALSE),FALSE),TRUE)
应用于范围: =$B$2:$B$1000
并分配您希望单元格在值为TRUE
时显示的格式
请注意使用美元符号来指定值是否为绝对值。
如果空格存在问题,您可能还需要添加 TRIM function。
对于第二部分,function 应该可以工作:
=IF(SUMPRODUCT(COUNTIF(B2:B1000,A2:A1000))+COUNTBLANK(B2:B1000)=ROWS(A2:A1000),TRUE,FALSE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.