免費軟體與線上工具1,417影音、圖片與 PDF9153C 開箱評測895生活、旅遊與遊戲798iPhone 與 Mac548LINE 與社群533Google 服務467Windows 與電腦455Office 教學425Android 手機402網路新知372AI 工具126
Office 教學

Excel 小教室 - SUMPRODUCT 函數實戰運用基礎(累積休假天數與未休天數計算)

在 Excel 處理多條件加總時,SUMPRODUCT 函數能將邏輯判斷與加總結合。透過設定條件範圍(成立為 1、不成立為 0)並相乘,就能輕鬆算出累積休假與未休天數。

Excel 多條件加總怎麼做?認識 SUMPRODUCT 函數

很多人遇到「多元條件」的總和計算時,都會想得很複雜。確實,Excel 的函數如果要達成多元條件成立才加總,大部分來說是不容易達成的,甚至要分好幾個函數才能做到。不過其實在 Excel 中,有一個非常實用的函數叫做 SUMPRODUCT,這是一個用來將「計算總和」以及「邏輯運算」合體的強大函數。

簡單的說,當你需要滿足條件 A、B、C 時才加總 D,那麼就可以只用 SUMPRODUCT 這一個函數來達成。前提是你要理解 SUMPRODUCT 的使用原理,往下阿湯就用個簡單的休假計算範例來為大家說明。

SUMPRODUCT 函數實戰運用基礎:計算累積休假天數

範例檔這裡下載:請點我

跟大家先講解一下今天想要達成的需求是什麼。假設公司員工一共有四位,後面的欄位是休假記錄(阿湯是隨便打的),假設只要有休假,就會在後面持續往下記錄。

在「累積休假天數」的部份,我們希望的結果是:可以看到某個日期為止,該員工已經累積多少休假以及未休天數。比如說,李大尾到 1/3 是休假 1 天,那麼累積休假會是 1;到 1/5 時,累積休假顯示會是 2。但在 1/3 那欄的累積休假,仍然要維持原本的 1,也就是我們要計算每天目前為止的結果。

理解要做什麼後,我們往下來實踐,請先看看下方的資料表結構:

Excel 休假記錄範例表格,準備在 G2 輸入公式

我們先在「累積休假天數」的 G2 儲存格中輸入公式,先提供 G2 的公式如下:

=SUMPRODUCT(($E$2:E2=E2)*($F$2:F2))

我們只需要在 G2 跟 H2 完成公式,後面只要往下拉就可以搞定。那麼阿湯來解說一下 G2 這個公式的運作邏輯。

原則上今天是要講 SUMPRODUCT 的運用,所以這兩個欄位我都只用 SUMPRODUCT 來做。SUMPRODUCT 最基本的理解方法就是:指定一個範圍後,如果給予條件,那麼它就是條件式(條件成立為 1,不成立為 0);如果指定一個範圍無其他條件,那就是原始數值。

首先用 G2 來說明 SUMPRODUCT 的運作原理。SUMPRODUCT 的每個括號裡,都會是一個加總計算或者是「條件」。第一個括號 ($E$2:E2=E2) 是指 E2 到 E2 之間,等於 E2 欄位值的話就為 1(這個是條件式)。而阿湯在第一個 E2 加上了 $E$2 絕對參照,就是要讓下拉公式時,只變動後方的值。比如下拉到 1/8 那欄時,公式就會變成:

=SUMPRODUCT(($E$2:E8=E8)*($F$2:F8))

這麼一來,就可以維持著計算到「目前日期」為止的欄位。我們進一步來說明 G3 那一格的公式,拆解後更能理解 SUMPRODUCT 的做法:

=SUMPRODUCT(($E$2:E3=E3)*($F$2:F3))

如果把 G3 的公式拆解之後,邏輯會是:(E2 是否等於 E3) 乘於 (F2) + (E3 是否等於 E3) 乘於 (F3)。因為 E2 不等於 E3(條件不成立為 0),E3 等於 E3(條件成立為 1),所以得到結果 (0*1) + (1*1) = 1。

不知道大家有理解 SUMPRODUCT 的用法了嗎? 阿湯再舉個例:

=SUMPRODUCT((E2:E3=E3)*(A2:A3>1)*(F2:F3))

如果是更複雜的條件,公式邏輯就會變成:(E2 是否等於 E3) 乘於 (A2 是否大於 1) 乘於 (F2) + (E3 是否等於 E3) 乘於 (A3 是否大於 1) 乘於 (F3),以此類推,你可以透過增加括號,加入各種條件式來做判斷。

在 H2 儲存格輸入未休天數的計算公式

如何計算剩餘未休天數?搭配條件比對與減法

搞定累積休假後,接下來「未休天數」的累積就很簡單了,請在 H2 儲存格輸入公式如下:

=SUMPRODUCT(($A$2:$A$5=E2)*($B$2:$B$5))-G2

這個條件式的邏輯是:將目前請假的員工(E2),比對出 A2~A5 之間的員工名單後,再加總 B 欄的「應休天數」。因為每個員工在 A 欄只有一筆對應的應休天數,所以比對出來的值會很準確。最後,再減掉 G 欄位已經算出來的「累積休假天數」,就會得出目前為止的未休天數了。

選取 G2 與 H2 儲存格,將公式往下拖曳套用

確認 G2 和 H2 的公式都計算正確後,最後只要將 G 跟 H 欄位的公式選取起來,按住右下角的十字游標往下拖曳套用到所有資料列,就結束這回合啦!

完成所有員工的累積休假與未休天數計算

常見問題

SUMPRODUCT 函數的主要功能是什麼?

SUMPRODUCT 是一個將「計算總和」與「邏輯運算」結合的函數,特別適合用來處理需要同時滿足多個條件(如條件 A、B、C 成立)才進行數值加總的情境。

為什麼公式中的儲存格要加上 $ 符號?

加上 $ 符號是為了設定「絕對參照」。在下拉複製公式時,可以固定起始儲存格的位置(例如 $E$2),讓範圍只隨著下拉變動結尾的儲存格,藉此計算出「到目前為止」的累計結果。

SUMPRODUCT 括號內的條件式是如何計算的?

括號內的條件式會進行邏輯判斷,如果條件成立則視為 1,不成立則視為 0。將這些 1 或 0 與對應的數值相乘後再加總,就能得出符合條件的總和。

(本文於 2026 年 10 月更新:補充步驟說明與常見問題)

這篇收錄在「Excel 教學總整理」,同一主題的其他教學都依小主題整理在那裡。