【问题标题】:Comparing two columns in Excel with exclusion将 Excel 中的两列与排除进行比较
【发布时间】:2011-04-24 01:47:33
【问题描述】:

我想比较 Excel 中两列中的值,如下图所示:-

使用公式,我想将值放在“B 中不存在的 A 的值”和“A 中不存在的 B 的值”中。任何帮助表示赞赏。

我分享了同一张 Excel 表格 here

【问题讨论】:

    标签: excel excel-2007 worksheet-function


    【解决方案1】:

    以下将起作用 - 对于每个,在第 2 行中添加公式,然后向下拖动

    B中不存在的A值

    =IF(ISERROR(MATCH($A$2:$A$20,$B$2:$B$17,0)),A2,"")
    

    结果 = x, y, z, i, j ,k, l, u

    注意:您的示例电子表格不正确,因为您在 Col A 但不在 Col B 中,但您没有在 Col C 的结果集中列出它

    A 中不存在的 B 值

    =IF(ISERROR(MATCH($B$2:$B$17,$A$2:$A$20,0)),B2,"")
    

    结果 = q, r, e, f, g

    【讨论】:

    • $ 表示什么?当您在第一个单元格中写入 $ 时,不会以它为前缀。我不得不手动输入。
    • $ 使范围是绝对的(即 A2:A20 和 B2:B17)。这意味着当您向下拖动公式时,引用仍然是 A2:A20 和 B2:B17。如果您不这样做,范围将增加,即 A2:A20、A3:A21、A4:A22。试试不带 $ 符号的公式,你会明白我的意思...
    • 你能解释一下为什么match函数中的value参数需要绝对范围吗?这对我有用:-=IF(ISERROR(MATCH(A2,$B$2:$B$17,0)),A2,"")
    • 我知道这有点过时了,但您的函数有所帮助,但在 Excel 2016 中,我在没有 $ 的情况下直接对列进行了单元格比较,然后将公式向下拖至其余部分。否则它给了我一些错误的不匹配 =IF(ISERROR(MATCH(A1,B:B,0)),A1,"")
    【解决方案2】:

    您也可以使用高级过滤器执行此操作 假设 Col A 和 B 中的数据 在单元格 C2 中写入 =SUMPRODUCT(--($B$2:$B$17=A2))=0 选择数据 A1:A12 单击高级过滤器,选择复制到另一个位置 列表范围 = $A$1:$A$22 标准范围 = $C$1:$C$2(注 C1 为空白) 在 Copy to Range 中选择 E1,说 OK 这将为您提供 B 中不存在的 A 值

    在单元格 D2 中写入 =SUMPRODUCT(--($A$2:$A$22=B2))=0

    选择数据 B1:B17 单击高级过滤器,选择复制到另一个位置 列表范围 = $A$1:$A$22 标准范围 = $D$1:$D$2(注 D1 为空白) 在复制到范围中选择 F1,说确定 这将为您提供 A 中不存在的 B 值

    您可以通过一行代码自动执行此操作

    Sub Get_Data1()

    [List1].AdvancedFilter 2, [Crt1], [Dest1], True

    结束子

    Sub Get_Data2()

    [List2].AdvancedFilter 2, [Crt2], [Dest2], True

    结束子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      • 2021-01-15
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多