Excel 计算多行中符合条件的唯一记录

Excel Count unique records that match criteria in multiple rows

在 Excel 中,我有一份按年份列出的会员名单,以及他们是否每年付费。我正在尝试确定居住在纽约并在 2019 年和 2021 年都付款的会员人数。在下面的示例中,只有 Mike 和 Jane 符合条件。因为“AND”条件在同一列,所以找不到类似的例子。谢谢。

Member Year Paid Status State
John 2018 Paid NY
John 2019 Paid NY
John 2020 Paid NY
John 2021 Not Paid NY
Mike 2018 Paid NY
Mike 2019 Paid NY
Mike 2020 Paid NY
Mike 2021 Paid NY
Mary 2018 Paid CA
Mary 2019 Not Paid CA
Mary 2020 Paid CA
Mary 2021 Paid CA
Jane 2018 Not Paid NY
Jane 2019 Paid NY
Jane 2020 Not Paid NY
Jane 2021 Paid NY
Tom 2018 Paid CA
Tom 2019 Paid CA
Tom 2020 Not Paid CA
Tom 2021 Paid CA

您可以根据付费状态添加新列Paid Code

=IF([@[Paid Status]]="Paid";1;0)

然后构建一个枢轴 table 使用:

  • Member 作为 Raws
  • Year 作为列
  • Paid Code 值的总和

那么你就有了一个新的 table,你可以在其中轻松提取你想要的指标。

使用 Office 365 中的动态公式 LET()FILTER() 我们可以 return 正确的值:

=LET(mem,A2:A21,yr,B2:B21,sts,C2:C21,st,D2:D21,fst,FILTER(mem,(yr=2021)*(sts="paid")*(st="NY")),scnd,FILTER(mem,(yr=2019)*(sts="paid")*(st="NY")),COUNT(MATCH(fst,scnd,0)))

好吧,一些评论者认为它可能行不通,所以这是我的提议,单元格 I1 中有结果:

G2 单元格(算一年):

COUNTIFS(A2:A21,F2,D2:D21,F,C2:C21,G,B2:B21,H)

在单元格 H2 中(计算第二年):

COUNTIFS(A2:A21,F2,D2:D21,F,C2:C21,G,B2:B21,I)

在单元格 I2 中(并确保两者都存在):

IF(AND(G2,H2),1,0)

可以使用 unique() 生成 F 列中的姓名列表。

F8:I8中的数据可以根据需要进行数据验证以获得不同的结果。

我一直认为几个小功能比一个较长的功能更容易控制...

并且 table G2:H6 可以减少到 4 个单元格:

IF(AND(COUNTIFS(A2:A21,F2,D2:D21,F,C2:C21,G,B2:B21,H),COUNTIFS(A2:A21,F2,D2:D21,F,C2:C21,G,B2:B21,I)),1,"")