2014-01-14 45 views
1

我很難智能地對此進行分句,但我會嘗試很長的路 - 我需要一個函數來分配1或0,具體取決於行是否有「 x「在前面四列之一中,然後總和所有這些分配的值。Excel數組函數來總結一些COUNTIF語句

換句話說,想象下面的公式在E2中,並且對於任何給定數量的行自動填充。

=IF(COUNTIF(A2:D2, "x")>=1, 1, 0)) 

我想要寫在F2的陣列功能,將做到在E列的所有值相加相當於(但不引用E列)。

薩姆的...

=IF(COUNTIF(A2:D2, "x")>=1, 1, 0)) 
=IF(COUNTIF(A3:D3, "x")>=1, 1, 0)) 
=IF(COUNTIF(A4:D4, "x")>=1, 1, 0)) 
=IF(COUNTIF(A5:D5, "x")>=1, 1, 0)) 
...for all of column A through D 

示例數據:

的公式應該返回值9有9行具有列A和d之間的 「×」 。

+0

你可以添加一些示例數據和預期的結果?我被「所有這些指定的價值總和」部分所困惑。 – jmstoker

回答

4

嘗試了這一點:

=SUM(--(MMULT(--(A2:D5="x"),{1;1;1;1})>0)) 

正常提交(數組輸入既不會幫助也不會受到傷害)。如果您的生產範圍寬於4列,請展開{1; 1; 1; 1}陣列。

也可以工作:

=SUM(N(MMULT(N(A2:D5="x"),{1;1;1;1})>0)) 
+1

很好!這很快:D實際上,你不需要'SumProduct'?我會想一個簡單的'Sum'。 – L42

+0

非常感謝!像魅力一樣工作! – blahblahblah

+0

@andyholaday我可以使用這個公式最多8列,直到Excel耗盡我的計算機上的資源。我當然可以解決這個問題,但只是想詢問你是否知道如何將這個公式應用到列A2:P2(16列寬)。 – blahblahblah