多个COUNTIFS忽略列中的重复值

时间:2015-02-26 15:03:42

标签: excel excel-formula

我似乎有一些如何排除重复的例子,但遗憾的是我无法实现。我有两个表,我正在使用以下COUNTIFS语句:

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

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

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

 Release Number  |  Test ID  |  RFC Number
    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 Number
    1212 
    1213
    1214
    1215

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

RFC Number   |  Tests
    1212     |  3
    1213     |  3
    1214     |  2
    1215     |  2

这当然是错误的,正确的表示形式是:

RFC Number   |  Tests
    1212     |  2
    1213     |  2
    1214     |  1
    1215     |  1

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

2 个答案:

答案 0 :(得分:0)

我写了一个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 +确认输入。 (如果你做得正确,你的公式将有{}这种类型的括号)

现在你应该自动填充,在本例中是单元格D7

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

答案 1 :(得分:0)

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

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

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

这给了我正确的输出但是我只对小数据集使用它 - 我不确定性能如何对更大的数据集。

遗憾的是,我所提取的数据提取/表格的限制促使了这种情况。在表格中有更好的方法来处理这个问题,而不是表现出色。