讀者根據這篇:Excel-計算間隔列的和(SUPRODUCT,MOD,ROW),詢問了進階的做法。如下圖,如果數值清單中包含了文字,則原公式會出錯,如何能加上防錯機制,應該如何處理?

原先的公式是以 SUMPRODUCT 為主,現在要改為陣列公式來處理。

Excel-計算間隔列的和+防錯處理(陣列公式,MOD,ROW)

【公式設計與解析】

選取儲存格B1:B25,按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:數值。

儲存格E2:{=SUM(IF(ISNUMBER(數值),(MOD(ROW(數值)-1,2)=1)*數值))}

這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 自動加上「{}」。

(1) ISNUMBER(數值)

在陣列公式中,利用 ISNUMBER 函數判斷數值陣列裡是否為數字。結果會傳回 TRUE/FALSE 陣列。

(2) MOD(ROW(數值)-1,2)=1

公式中的參數『2』:這是要間隔多少列的數值。

MOD(ROW(數值)-1,2)=1:其中的「-1」,乃因數值陣列是由第2列開始,即項次1在第2列,項次2在第3列,...,都是差 1。利用 MOD 函數來求得列號除以2所得的結果,並判斷是否結果為 1,產生 1,0,1,0,1,0, ...。

(3) IF(ISNUMBER(數值),(MOD(ROW(數值)-1,2)=1)*數值)

利用 IF 函數只將數值陣列中是數字者,才計算(MOD(ROW(數值)-1,2)=1)*數值。

(4) SUM(IF(ISNUMBER(數值),(MOD(ROW(數值)-1,2)=1)*數值))

最後,利用 SUM 函數將第(3)式的傳回值予以加總,即為所求。


如果你的數值陣列只會出現數字,則可以參考:

Excel-計算間隔列的和(SUPRODUCT,MOD,ROW)

Excel-計算間隔列的和+防錯處理(陣列公式,MOD,ROW)

arrow
arrow
    文章標籤
    Excel MOD ROW
    全站熱搜

    vincent 發表在 痞客邦 留言(0) 人氣()