如何使用数组公式计算具有条件的不同命名Excel表中的唯一值?

时间:2015-03-12 18:26:41

标签: excel array-formulas

我有两个表(一个用于捕获每个记录,另一个用于捕获记录摘要)。

跟踪器表 - 列:代码,日期,错误消息

汇总表 - 列:代码,错误计数,唯一错误

目前,我使用以下内容从“错误计数”列中的每个应用程序代码中检索总错误数: {=COUNT(IF([@Code]=Tracker[Code],1))}

即。如果我在跟踪器表中有以下内容:

1234 | Dec 01 34 | Error 1111 has occurred in Application 1234

1234 | Dec 23 34 | Error 1111 has occurred in Application 1234

1234 | Dec 23 34 | Error 4444 has occurred in Application 1234

然后在汇总表中我应该:

1234 | 3 | 2

我查看了this answer(下面的公式),我可以针对范围(B2:B100A2:A100)命名目标列中的列,但我不知道是什么用于ROW(A2)目标。

=SUM(IF(FREQUENCY(IF(B2:B100=1,IF(A2:A100<>"",MATCH(A2:A100,A2:A100,0))),ROW(A2:A100)-ROW(A2)+1),1))

我使用什么数组公式来查找每个错误的唯一编号?

1 个答案:

答案 0 :(得分:1)

您可以使用此数组公式:

=SUM(IFERROR(([@Code]=Tracker[Code])/COUNTIFS(Tracker[Error Message],Tracker[Error Message],Tracker[Code],[@Code]),0))

基本方法是将1分购买某个Error Message出现的次数,然后SUM分开......这将为您提供唯一的留言数。

我们在初始[@Code]=Tracker[Code]中添加,以便我们为分子得到10(即忽略那些与Code不匹配的行)以及额外的COUNTIFS条件...,Tracker[Code],[@Code],以便我们只计算匹配Error Message

Code的出现次数

IFERROR是为了摆脱不匹配行的那些令人讨厌的#DIV/0!错误......