Excel计算一个值出现在列中的次数,如果该行唯一

所以我有一个Excel电子表格是这样的:

ID ABCD 1 # £ £ £ 2 # £ £ £ 3 £ # # # 4 £ # # # 5 # £ # # 6 £ £ £ # 7 £ # # # 8 # £ £ £ 9 £ £ £ £ 10 # £ # £ 

并且,对于每个AD列,我想要统计#个条目的数量 – 但是只有在同一行中没有其他#个条目的情况下 – 例如,列A有5个#,但只有3个是唯一的。 列B和C没有唯一的条目,列D有1个唯一的#。

要计算散列,我会使用CountIf,但我不知道怎么做,当还比较每一行。

尝试这一列A (另一列更改A2:A11="#" B2:B11="#"等):

 =SUMPRODUCT((A2:A11="#")*(MMULT(IF(A2:D11="#",1,0),TRANSPOSE(COLUMN($A$2:$D$2)/COLUMN($A$2:$D$2)))=1)) 

其中A2:D11是你arrays的地址, A2:A11第一列的A2:A11地址。

注意,因为它是一个数组公式,所以你应该按下CTRL + SHIFT + ENTER来评估它。

在这里输入图像说明

我相信你可以用一个单独的产品做这个,我仍然在玩这个,但作为一个快速的解决scheme,如果你可以使用一个帮助列,你可以做这样的事情:

  1. E1 ,input以下公式: =COUNTIF($A1:$D1,"#")并将其向下拖动
  2. 在你的testing单元格中,比如A12 ,用下面的公式表示: =SUMPRODUCT(--(A1:A10="#"),--($E$1:$E$10=1))

这会给你预期的结果3 0 0 1 ,但我仍然确定有一个更好的方法….

希望这有助于,但!

您可以使用A13中的此公式复制到D13

=SUMPRODUCT((MMULT((A2:A11="#")*($A2:$D11="#"),{1;1;1;1})=1)+0)

这不需要“数组input”

{1;1;1;1}部分将需要根据您的范围中的列数进行更改 – 这里有四个1,因为您的整个范围是四列。 如果你想使这部分自动,你可以切换到这个“数组公式”

=SUM((MMULT((A2:A11="#")*($A2:$D11="#"),TRANSPOSE(COLUMN($A2:$D11)^0))=1)+0)

CTRL + SHIFT + ENTER确认

或者另一种方式是这样的:

=SUMPRODUCT((A2:A11="#")*(COUNTIF(OFFSET($A2:$D2,ROW(A2:A11)-ROW(A2),0),"#")=1))

所有这些公式应该给出相同的结果