2012年12月12日 星期三

Excel-計算所有數字中0~9出現的次數(SUMPRODUCT)

有人想要計算一堆數字中(參考下圖),包含 10 位數和個位數的 0~9 出現次數,該如何處理呢?

以上圖的儲存格A2為例,分別找出其 10 位數和個位數,公式如下:

(1) 10 位數:=INT(A2/10)

(2) 個位數:=A2-INT(A2/10)*10

如果要一個公式找出一些數值陣列的 10 位數和個位數,必須藉助 SUMPRODUCT 函數。

以儲存格G2為例,要找出 10 位數和個位數為 0 者的個數和:

(1) 10 位數的個數:=SUMPRODUCT((INT($A$2:$D$11/10)=F2)*1)

(2) 個位數的個數:=SUMPRODUCT(--(($A$2:$D$11-INT($A$2:$D$11/10)*10)=F2))

(1) + (2) 即為10 位數和個位數為 0 者的個數和。複製儲存格G2,往下各列貼上。

在 (1) 的公式中使用「*」和在 (2) 的公式中使用「--」,其目的相同,都是要將 True/False 陣列轉換為 1/0 的陣列。計算 1/0 的總和即為答案。

 

【補充資料】

相關之詳細函數說明,請參閱微軟網站:

SUMPRODUCThttp://office.microsoft.com/zh-tw/excel-help/HP010342935.aspx

SUMPRODUCT:傳回各陣列中所有對應元素乘積的總和。

語法:SUMPRODUCT(array1, [array2], [array3], ...)

array1:要求對應元素乘積和的第一個陣列引數。

array2, array3,...:要求對應元素乘積和的第 2 個到第 255 個陣列引數。

註:各陣列必須有相同的維度(相同的列數,相同的欄數)。否則會傳回錯誤值#VALUE!。並且會將所有非數值資料的陣列元素當成0來處理。

沒有留言:

張貼留言

好康東東