【问题标题】:How to find non matching records from two columns while accounting for duplicate values in Excel如何在 Excel 中考虑重复值时从两列中查找不匹配的记录
【发布时间】:2020-06-11 22:29:02
【问题描述】:

我有两个大专栏。

A 列包含 100,000 个不同的数字/行。 B 列包含 100,210 个数字/行。它们具有相同的数字,除了 B 列有 210 额外的行。我需要能够获得额外 210 行的值。

我遇到的问题是这些行中的数字不是唯一的。 例如,

A 列包含以下数字:2,1,3,4,5,5,6,7

B 列包含以下数字:1,2,3,4,5,5,5,5,6,6,7,8

我希望结果结果是:5,5,6,8

我似乎无法想办法做到这一点。

我在导入 Excel 的文本文件中有两列。如果在 excel 之外有更好的方法,我也愿意接受。

【问题讨论】:

    标签: excel


    【解决方案1】:

    使用动态数组公式过滤器:

    =FILTER(B1:B12,COUNTIF(OFFSET(B1,0,,SEQUENCE(ROWS(B1:B12))),B1:B12)>COUNTIF(A:A,B1:B12))
    


    没有过滤器:

    把这个放在第一个单元格并复制下来:

    =IFERROR(INDEX(B:B,AGGREGATE(15,7,ROW(B1:B12)/(COUNTIF(OFFSET(B1,0,,ROW(INDEX($ZZ:$ZZ,1):INDEX($ZZ:$ZZ,ROWS(B1:B12)))),B1:B12)>COUNTIF(A:A,B1:B12)),ROW($ZZ1))),"")
    

    【讨论】:

      【解决方案2】:

      尝试按照以下步骤操作,假设 A 列的值小于 B 列,并且行从 1 开始:

      A.创建 C 列。

      • 在单元格 C1 中放置函数:=COUNTIF(A:A;B1)
      • 将此函数复制到其余单元格中,对于 B 列的所有项目。因此,单元格 C2 将具有函数 =COUNTIF(A:A;B2) 等等。

      B.创建 D 列。

      • 在单元格 D1 中放置函数:=COUNTIF($B1:$B1;B1)
      • 将此函数复制到其余单元格中,对于 B 列的所有项目。因此,单元格 D2 将具有函数 =COUNTIF($B$1:$B2;B2) 等等。

      C.创建列 E。

      • 在单元格 E1 中放置函数:=IF(D1
      • 将此函数复制到其余单元格,对于 B 列的所有项目。因此,单元格 E2 将具有函数 =IF(D2

      D.过滤以仅显示列 E 值为“缺失”的行。

      当然,您可以将以上 3 列合并为一列(例如在 F 列中),因此这些单元格将具有以下功能:

      • F1: =IF(COUNTIF($B$1:$B1,B1)
      • F2: =IF(COUNTIF($B$1:$B2,B2)
      • 等等

      解释

      • 在 C 列中,我们计算相应单元格的值的次数 的 B 列存在于整个 A 列中。
      • 在 D 列中,我们计算到目前为止我们在 B 列中“达到”此值的次数。
      • 在 E 列中,我们检查是否“满足”了该值在 A 列中存在的次数更多。如果确实“满足”了更多次,则我们将单元格标记为“缺失”

      使用您提供的示例进行测试并且工作正常。

      希望对你有帮助! 祝你好运!

      编辑 - 添加屏幕截图

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-16
        • 2021-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-02-16
        相关资源
        最近更新 更多