如何使用数组公式计算来自不同命名 Excel table 的唯一值?

How to count unique values from different named Excel table with conditions using array formula?

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

Tracker Table - 列:代码、日期、错误消息

摘要Table - 列:代码、错误计数、唯一错误

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

即如果我在 Tracker Table 中有以下内容:

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

那么在摘要中Table我应该有:

1234 | 3 | 2

我查看了 this answer(公式下方),我可以将命名为 table 的列作为范围(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))

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

您可以使用这个数组公式:

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

基本方法是除以 1 购买某个 Error Message 出现的次数,然后 SUM 那些...这将为您提供唯一的消息数。

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

的出现次数

IFERROR 是为了消除不匹配行的那些讨厌的 #DIV/0! 错误...