根据 B 列中的条件计算 A 列中的唯一值

根据 B 列中的条件计算 A 列中的唯一值

我希望您能帮助我制定一个公式,来计算 A 列中在 B 列中具有特定值的唯一文本值的数量。

例如,如果我想计算所有独特的水果(A 列),(B 列),输出将等于 2(橙子和梨)。

Column A       Column B  
Apple          Yum 
Orange         Yuck  
Pear           Yuck  
Pear           Yuck  

答案1

=SUMPRODUCT(--(FREQUENCY(MATCH(A:A&B:B,A:A&"Yuck",0),ROW(A:A)-ROW(A1)+1)>0))   

解释:

Frequency将计算来自Match

Match用于获取数据中每个项目的位置,并且仅返回数据中出现多次的重复项目的第一个匹配项

频率的 bins 数组由ROW(A:A)-ROW(A1)+1以下顺序数组构成:{1;2;3;4;5;6;7;8;9;10}

--当 >0 时返回 1 之前的频率True

Sumproduct将求和 1

A:A&B:B 是匹配的值A:A&"Yuck"
AppleYuck、OrangeYuck、OrangeYum 与 A​​ppleYuck、OrangeYuck 匹配...
并返回行号

答案2

我能够通过以下公式获得期望的结果:

=SUMPRODUCT((B:B="Yum")/IF(COUNTIFS(A:A,A:A,B:B,"Yum")=0,1,COUNTIFS(A:A,A:A&"",B:B,"Yum")))

答案3

您需要一个数组公式来解决这个问题:

在此处输入图片描述

  • 单元格中的数组公式C46,以Ctrl+Shift+Enter

    =CEILING(SUM(SUMPRODUCT(($A$40:$A$46=A40)*($B$40:$B$46=B40))/(COUNTIFS($A$40:$A$46,A40,$B$40:$B$46,B40)+($A$40:$A$46<>A40)+($B$40:$B$46<>B40))),1)
    

您可以根据需要调整公式中的单元格引用。

相关内容