Excel陣列公式:5個函數範例把高手密技學起來

Excel陣列公式是高手常常使用的技巧,主要用於多條件求和的資料分析。本文從最基本的SUMIF開始,延伸使用SUMPRODUCT乘積和,5組函數循序漸進把高手密技學起來。

一、製造表格範例

本文的Excel表格範例是生管報表,列標題是客戶及料號,欄標題是每一天的日期,又分為生管排程和實際的產出。

一、製造表格範例

二、如何加總資料?

範例報表雖然能清楚看出各個料號每天的排程產出狀況,還很方便可以新增日期,可是如果要加總每幾天一段時期的實際產出的時候會有點麻煩,原始做法可能就是在儲存格手動輸入資料,再手工一筆一筆加起來。

二、如何加總資料?

三、Sumif公式用法

像這種情形很適合Sumif用法進行條件求和,它有三個參數,第一個是條件範圍,第二個是判斷條件,第三個是加總範圍。以I3儲存格為例:「=SUMIF($C$2:$H$2,”產出”,C3:H3)」,公式便是找出在 C2到H2標題欄中屬於「產出」的部份,將相對應的「C3到H3」範圍內的數值加總起來,加總結果「2000」,也就是料號「INV001」三天的總產出。

三、Sumif公式用法

四、MOD函數判斷

除了Sumif函數,Excel還有一些其他方法可以進行條件求和,但首先要把符合條件的欄位找出來,在此先使用三個函數來建立判斷公式。

COLUMN函數會得到目前儲存格所在位置的欄號,MOD函數取得兩數相除的餘數,將欄數除以2等於是判斷欄數是奇數還是偶數,偶數計算結果是0,也就是除以2餘0,奇數的話會是1。

這裡的範例報表的「產出」是位於偶數欄位:「D」、「F」、「H」,依照上個段落的公式計算果是0,但是想要把符合條件的產出欄位變更為是1,而不符合條件的奇數設定為是0,如此符合一般`0代表假不成立,1代表真成立的原則,可以使用N這個函數,它的作用是把非數值轉換數字,而且如果是假的話是0,真的話是1,因此可以配合用MOD函數計算的結果再加上一個條件式判斷是不是等於0,如此就可以把1跟0做個對調。

四、3個函數組合

五、Sumproduct怎麼用

上個步驟已經建立是否符合條件的判斷列,接下來就可以使用SUMPRODUCT這個函數,它的作用是將兩個範圍進行兩兩相乘得到乘積和,在每一列的料號都進行計算,以I3儲存格為例,公式是:「=SUMPRODUCT(C3:H3,$C$12:$H$12)」,第一個範圍是C3到H3,三天的排程和產出數量,第二個範圍是C12到H12,是否屬於產出欄位的判斷,兩兩相乘,條件不成立代表是排程欄位,不是產出欄位,第二個範圍的值是0,0乘以多少都是零,條件成立代表是產出欄位,第二個範圍的值是1,1乘以多少就是多少,所以正是產出數量,從左至右依序進行乘積和,也就是進行了條件求和。

五、Sumproduct怎麼用

六、Excel陣列公式

有了Sumroduct乘積和的概念之後,進一步使用進行的陣列公式:{=SUM(IF(C$2:H$2=”產出”,C3:H3))}」。

它是先用IF函數判斷在「C2到H2」這個範圍內的資料是否會等於產出,是的話就會得到相對應的「C3到H3」的內容,也就是條件成立的話就會得到第三列相對應的數值,條件不成立就會是假或者是0,得到一連串符合條件的資料,外面接著再用SUM函數把這些符合條件的資料加總起來。

注意到Excel陣列公式左右的大括號並不是手動輸入的,必須先輸入好不含大括號的公式之後,在鍵盤使用組合鍵「Ctrl+Shift+Enter」,Excel會自動加上左右大括號,表示將公式進行陣列處理,這部份的操作可以參考文章下方補充的影片講解。

Excel陣列公式:5個函數範例把高手密技學起來

七、延伸引用範圍

最後補充一點,想要更加瞭解陣列公式的作用,可以在某個單一的儲存格輸入範圍公式。例如截圖所看到的公式是在「C11」輸入的:「=IF(C$2:H$2=”產出”,C3:H3)」,按下Enter鍵之後,會自動延伸輸入的結果在C11到H11的範圍呈現出來,上個步驟在按下「Ctrl+Shift+Enter」組合鍵的時候,就是把這整個範圍的資料依照公式所設定的規則計算,並且把計算結果顯示在公式所在的儲存格上,這就是陣列的機制,簡單而言是在目前儲存格延伸顯示範圍,C11儲存格的公式結果延伸為C11到H11,算是突破了Excel函數原本只能在本身儲存格顯示傳回值的限制。

七、延伸引用範圍

高手是每個技巧都學

從這篇文章的範例可以看到,執行條件求和其實只要用Sumif就可以簡單直覺得到想要的結果,有點大費周章使用陣列公式似乎沒有必要,參考微軟說明手冊,發現到微軟本身也是建議減少使用陣列公式。

這個可以從 Excel版本演進的方向理解,Excel早期Excel版本只有Sumif,如果要多條件求和只能進階使用陣列公式實現,後來的版本有了Sumifs,直接用簡單公式就可以多條件求和,不需要用到複製的陣列公式。

即便如此,在有些特殊場合陣列公式仍然可以派上用場,公式要用時方恨少,所以從Excel教學和學習的角度而言,陣列公式還是多多益善的。

本文章講解影片:

YouTube video

一次學會所有必須技能的Excel大全集課程:

Excel線上課程:零基礎開始教學,20小時大全集

最新文章: