Excel 将第一列与其他三列进行比较。在最后一列中显示不匹配数据

Excel 将第一列与其他三列进行比较。在最后一列中显示不匹配数据,excel,Excel,我有下表。A列基本上是主数据。 列B、C和D将包含列A中的一些数据。列B、C和D可以有公共数据 我想将数据列A与列B、C和D进行比较。 在“结果”列中,显示所有不匹配数据 你可以使用这个“大”数组公式: =INDEX($A$1:$A$10;SMALL(IF(NOT(COUNTIF($B$1:$B$2;$A$1:$A$10)+COUNTIF($C$1:$C$3;$A$1:$A$10)+COUNTIF($D$1:$D$2;$A$1:$A$10));ROW($A$1:$A$10)-ROW($A$1)+

我有下表。A列基本上是主数据。 列B、C和D将包含列A中的一些数据。列B、C和D可以有公共数据

我想将数据列A与列B、C和D进行比较。 在“结果”列中,显示所有不匹配数据

你可以使用这个“大”数组公式:

=INDEX($A$1:$A$10;SMALL(IF(NOT(COUNTIF($B$1:$B$2;$A$1:$A$10)+COUNTIF($C$1:$C$3;$A$1:$A$10)+COUNTIF($D$1:$D$2;$A$1:$A$10));ROW($A$1:$A$10)-ROW($A$1)+1;"");ROW(A1)))
在你想得到第一个公式的地方写下公式,然后复制下来得到其他公式

这是一个数组公式,所以不要忘记按Ctrl-Shift-Enter键

根据您的区域设置,您可能需要将字段分隔符“;”替换为“,”

这一个更小,仍然有效:

=INDEX($A$1:$A$10;SMALL(IF(NOT(COUNTIF($B$1:$D$3;$A$1:$A$10));ROW($A$1:$A$10)-ROW($A$1)+1;"");ROW(A1)))
尝试一下:

Sub MissingItems()
    Dim N As Long, I As Long, J As Long, V As String
    Dim r As Range
    N = Cells(Rows.Count, 1).End(xlUp).Row
    J = 1
    For I = 1 To N
        V = Cells(I, 1).Value
        Set r = Nothing
        Set r = Range("B:D").Find(V, After:=Range("B1"))
        If r Is Nothing Then
            Cells(J, 5).Value = V
            J = J + 1
        End If
    Next I
End Sub