2014-02-20 62 views
1

,所以我有一個Excel電子表格,是這樣的:次Excel的計數的值出現在列,如果唯一的行

ID A B C D 
1 # £ £ £ 
2 # £ £ £ 
3 £ # # # 
4 £ # # # 
5 # £ # # 
6 £ £ £ # 
7 £ # # # 
8 # £ £ £ 
9 £ £ £ £ 
10 # £ # £ 

,併爲每個列AD,我要算#條目的數量 - 但只有在同一行中沒有其他#條目的情況下 - 例如,列A有5#,但其中只有3個是唯一的。列B和C沒有唯一的條目,列D有1個唯一的#。

要計算散列值,我將使用CountIf,但是我也不知道如何在比較每一行時如何去做。

回答

2

試試這個一爲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是你的陣列的地址,第一列的A2:A11地址。

注意,因爲它是一個數組公式,你應該按CTRL + SHIFT + ENTER 評估它。

enter image description here

+1

不錯!我之前沒有使用Array公式 - 謝謝:) – simonalexander2005

2

我敢肯定,你可以用一個單一的SUMPRODUCT做到這一點,我還是與玩弄,但作爲一個速戰速決,如果你可以使用一個輔助列,你可以做這樣的事情:

  1. E1,把下面的公式:=COUNTIF($A1:$D1,"#")並在測試電池拖下來
  2. - 說A12,把下面的公式:=SUMPRODUCT(--(A1:A10="#"),--($E$1:$E$10=1))和對面列拖動D.

這會給你結果3 0 0 1如預期的那樣,但我仍然確定有更好的方法....

希望這有助於,雖然!

+0

這是一個好的開始,謝謝。在沒有幫助欄的情況下這樣做會讓我的電子表格更加整潔,儘管 – simonalexander2005

1

你可以使用這個公式A13對面D13複製

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

這不需要 「數組項」

{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))

Al l這些公式應該給出相同的結果

相關問題