← Excel 公式課程

FIELD NOTES / Excel 公式教學

AVERAGEIFS 依多個條件計算平均

Excel 公式教學發布:作者:茂伯預估 6 分鐘閱讀

學會同時檢查分店與完成狀態,只平均兩個條件都符合的金額。

本文目錄

本教學由作者茂伯編寫,並由作者在 Windows 版 Microsoft 365 與 Excel 2021 實際操作驗證。

學會同時檢查分店與完成狀態,只平均兩個條件都符合的金額。你會把平均範圍放在第一個參數,再依序加入條件範圍與條件,理解條件之間是而且的關係,最後用符合的三筆金額驗證平均結果。

什麼時候會用到

  • 訂單清單包含多家分店與不同進度時,計算某家店已完成訂單的平均金額,讓尚未完成的訂單不影響這次報告。

  • 同一張數值表需要落在特定上下限內的平均時,把同一數值範圍指定兩次,各自提供下限及上限,避免只設一邊門檻。

適用版本

  • 本課可在 Microsoft 365、Excel 2024、Excel 2021、Excel 2019 與 Excel 2016 使用,官方函數頁列有這些版本。

  • 本課使用一般儲存格參照,輸入完成按 Enter 即可;不需額外增益集,也不用特殊陣列按鍵。

先準備範例資料

開啟空白活頁簿,依下表輸入對應儲存格。表中「(空白)」代表儲存格留空,請勿輸入括號內的文字。

列 A B C
1 分店 狀態 金額
2 北店 完成 100
3 北店 待處理 80
4 南店 完成 200
5 北店 完成 160
6 南店 待處理 120
7 北店 完成 220
8 北店 待處理 140
  • A1:C8放完整原始表。A欄是分店、B欄是狀態、C欄才是金額;三欄的同一列必須始終對應同一張訂單。

  • 北店且完成的紀錄是第2、5、7列,金額為100、160、220。第4列雖完成,卻是南店,所以不能算進北店報告。

  • 第3、8列雖是北店,狀態仍為待處理,主公式會排除。完成與待處理請用一致文字,不要另加空格或標點。

  • 金額都是合成的純數字,不含貨幣符號。主公式所有範圍都從第2列到第8列,長度相同才能正確逐筆比較。

輸入這個公式

在 E2 輸入以下公式,按 Enter。

=AVERAGEIFS(C2:C8,A2:A8,"北店",B2:B8,"完成")

輸入位置:E2  正確結果:160

語法與引數

=AVERAGEIFS(average_range,criteria_range1,criteria1,[criteria_range2,criteria2],...)

引數就是交給函數處理的資料或設定。語法中的 [ ] 表示可以省略,輸入公式時不要打出方括號或省略號。

average_range 必要。真正要平均的範圍,本例C2:C8。請特別記住它放最前面,不是放在條件之後。

criteria_range1 必要。第一組條件要檢查的範圍,本例A2:A8;其大小、形狀必須與平均範圍一致。

criteria1 必要。第一組判斷條件,本例文字"北店";它只套用到緊接在前面的A2:A8。

[criteria_range2,criteria2],... 選填的其他條件組,每次必須成對加入範圍與條件。本例用B2:B8及"完成"作第二組;含第一組最多127組,全部成立才平均該列。

公式使用半形標點;部分地區設定以分號分隔引數,請依 Excel 的提示調整。

照著做並核對畫面

  1. 新增一張空白工作表,點選 A1,依資料表輸入到 C8。第一列是標題,第2至第8列才是七筆紀錄;數字欄只輸入數字,單位留在標題或說明中。
  2. 在公式列左側的名稱方塊輸入 A1:C8,按 Enter 檢查資料的位置。核對C3是80、C5是160,並確認每列分店與狀態沒有錯位。 若貼上後擠在同一格,先重新分欄輸入,確認每個欄位各占一欄。
  3. 點選 E1,輸入「北店已完成平均金額」。再點選 E2,確保結果放在原始資料右側,不覆蓋資料,也不把 E2 自己包含在計算範圍內。
  4. 切換半形英數輸入,在 E2 完整輸入 =AVERAGEIFS(C2:C8,A2:A8,"北店",B2:B8,"完成")。輸入完成先核對函數拼字、冒號與左右括號,再按 Enter;請勿把語法說明中的方括號輸入公式。
  5. 確認 E2 顯示 160,再重新點選 E2。公式列應顯示 =AVERAGEIFS(C2:C8,A2:A8,"北店",B2:B8,"完成"),儲存格則顯示答案;若答案不同,先核對資料與範圍,不要直接把答案數字覆寫進 E2。
AVERAGEIFS 範例資料及公式結果的 Excel 網頁版實際操作畫面

圖 1 Excel 網頁版實際操作畫面。Windows 桌面版工具列外觀可能不同。

結果解讀

  1. 先圈出北店的第2、3、5、7、8列;這是第一道條件,尚不能直接平均五筆金額。

  2. 再檢查這五列的狀態,只剩第2、5、7列是完成,取得C2、C5、C7的100、160、220。

  3. 相加為480,共三筆符合全部條件的數字;480÷3=160。因此不是把北店所有訂單都平均。

  • AVERAGEIFS先放平均範圍,再放條件組;AVERAGEIF則是條件範圍、條件、平均範圍。轉寫時要重新排列,不能只替名稱加上S。本題先寫C2:C8,接著才檢查分店與狀態,這個順序要能用自己的話讀出來。

  • 條件組之間代表「而且」。本例不會把南店完成的訂單與北店待處理的訂單混在一起,也不會對兩組各算一次平均後再平均。

  • 沒有符合全部條件的可用數字會顯示#DIV/0!。若範圍長度不同,先修正起訖列,不要把錯誤解讀成平均金額為零。核對多條件時,可先在紙上列出第一組通過的列號,再劃掉第二組未通過的列號。兩次篩選留下的是同一批列,並非兩組平均答案。所有範圍即使大小相同,也要確認從同一筆紀錄起算;錯開一列可能不報錯,卻會把別張訂單的金額誤配到條件。

常見錯誤

  1. 得到170或其他不符結果

原因:只保留完成條件,忘了限制北店。 處理:檢查公式是否完整包含A2:A8,"北店"這一組;逐列排除南店。

  1. 出現#VALUE!

原因:其中一個範圍只到第7列,與C2:C8大小不同。 處理:把平均與條件範圍全部恢復為第2至第8列,並確認都是一欄。

  1. 出現#DIV/0!

原因:條件拼字不同、前後有空格,或兩個條件沒有共同符合的紀錄。 處理:先查看A2、B2是否精確為北店、完成,再檢查其餘符合列的金額。

自己試一次

先遮住解答,試著自己輸入公式並預測結果。每題都從上方的原始資料重新開始,結果放在題目指定的儲存格。

練習 1 南店已完成

先恢復本課原始資料。在E2計算南店且完成的平均金額。

參考公式:

=AVERAGEIFS(C2:C8,A2:A8,"南店",B2:B8,"完成")

正確結果:200

解答 1 只有第4列同時符合南店與完成。

解答 2 一筆金額200除以1,平均仍為200。

練習 2 完成訂單再設門檻

先恢復本課原始資料。在E2計算狀態完成且金額至少160的平均。

參考公式:

=AVERAGEIFS(C2:C8,B2:B8,"完成",C2:C8,">=160")

正確結果:約 193.333333;Excel 顯示的小數位數取決於儲存格格式。

解答 1 符合第4、5、7列,金額200、160、220。

解答 2 580除以3為193.333333…,不把第2列的100納入。

練習 3 訂單完成狀態更新

先恢復本課原始資料。只把B3改成完成,在E2重新計算北店完成平均。

參考公式:

=AVERAGEIFS(C2:C8,A2:A8,"北店",B2:B8,"完成")

正確結果:140

解答 1 北店完成變成第2、3、5、7列,多了80這一筆。

解答 2 100+80+160+220=560,560÷4=140。

官方參考

Microsoft Support:AVERAGEIFS 函數