【问题标题】:Multiple COUNTIFS ignoring duplicate values in a column多个 COUNTIFS 忽略列中的重复值
【发布时间】:2017-06-05 06:12:49
【问题描述】:

我似乎有一些如何排除重复项的示例,但不幸的是我当时无法实施。我有两个表,我正在使用以下 COUNTIFS 语句:

=COUNTIFS(Table1[FILTERED_RFC_COVERAGE],"*" &Table2[@RFC]& "*",Table1[REL_NUM],[@[RELEASE_VERSION_NUMBER]])

这给了我一个不准确的结果,因为总数很有可能返回重复项。对数据的一点解释:

Table1 包含(为简单起见)三列:

 版本号 |测试ID | RFC 编号
    53 | 1 | 1212, 1213
    53 | 1 | 1212, 1213
    53 | 2 | 1212
    53 | 3 | 1213
    53 | 4 | 1214, 1215
    53 | 4 | 1214, 1215

表 2 每行包含一个 RFC 编号:

RFC 编号
    1212
    1213
    1214
    第1215章

因为RFC Number 是一个文本字段并且可以包含多个RFC,所以在Excel 中我基本上是使用like 运算符来匹配RFC number 与RFC 编号列,这之后是确保发布的唯一性。这目前给了我:

RFC 编号 |测试
    1212 | 3
    1213 | 3
    第1214章2
    1215 | 2

这当然是错误的,正确的表示应该是:

RFC 编号 |测试
    1212 | 2
    1213 | 2
    第1214章1
    1215 | 1

这不再重复计算相同的 ID。我相信可以使用 FREQUENCY 或 SUMPRODUCT,但如果可以稍微解释一下,那将是一个很大的帮助。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    我编写了一个 CSE(Ctrl+Shift+Enter) 公式,您可以使用它从您的 RFC 编号中查找唯一值。在该操作之后,您可以使用您的公式并获得与现在相同的结果。

    假设: 在我的测试表中,我有这样的布局:

    “A”列 = 版本号

    “B”列 = 测试 ID

    “C”列 = RFC 编号

    这与您在第一个屏幕上给我们的布局相同。

    现在请创建新列“D”=唯一

    在公式栏中的 D2 单元格中输入以下代码:

    =IFERROR(INDEX($C$2:$C$7,MATCH(0,COUNTIF($D$1:D1,$C$2:$C$7),0)),"")
    

    然后通过 ctrl+shift+enter 确认。 (如果你做得正确,你的公式将有 {} 这种类型的括号)

    现在您应该进行自动填充,在本例中为单元格 D7

    此操作后,您可以将公式调整为 RFC 编号列表中的唯一值。

    【讨论】:

      【解决方案2】:

      通过网络上的一些进一步帮助,我想出了一个解决方案:

      =SUMPRODUCT((--(Range=Cell))*(--ISNUMBER(SEARCH("*"&Cell&"*",Range2)))/MMULT(--(Range2=TRANSPOSE(Range2)),--(Range2=Range2)))
      

      第一个 Range=Cell 组合是我在特定版本上的条件 - 随后是针对 连接列 搜索 RFC 编号 - 该列是版本号、测试的组合ID 和 RFC 编号。

      这给了我正确的输出,但是我只对一个小数据集使用它——我不确定性能如何与更大的数据集保持一致。

      不幸的是,我正在提取的数据提取/表的限制导致了这种情况。有一种更好的方法可以在表格中而不是 excel 中处理这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-10
        • 1970-01-01
        • 2020-10-22
        • 2021-02-25
        • 2020-09-10
        • 2010-10-15
        • 2011-01-23
        • 1970-01-01
        相关资源
        最近更新 更多