跳到主要內容跳到頁尾

平均單價怎麼算才對:AVERAGE.WEIGHTED 加權平均與條件平均的挑法

6 分鐘閱讀Lv.3 中級摘要與日期

各門市的平均單價直接用 AVERAGE 會失真,要依杯數加權。整理 AVERAGE.WEIGHTED 的語法與多組參數寫法,並對照 AVERAGEIF、AVERAGEIFS、MAXIFS、MINIFS 什麼時候該換哪一個,附每家門市的加權單價實例。

發布 更新

文章目錄

今天要聊的問題很常見:三家門市各賣三種茶,單價不一樣,賣的杯數也不一樣,「平均單價」到底要怎麼算?直接 AVERAGE 單價欄,每一種茶不管賣了幾杯都只算一次,這個數字不太能拿去報告。這時候要的是加權平均,Google 試算表有現成的 AVERAGE.WEIGHTED。

另外,標題上的 AVERAGEIF、AVERAGEIFS、MAXIFS、MINIFS 在前面幾篇已經講過條件怎麼寫,這篇不重講,只整理「想知道的東西長怎樣,該挑哪一個」。

先看資料

九筆資料,放在 A1:D10,A 欄門市、B 欄品項、C 欄杯數、D 欄單價(元):

ABCD
1門市品項杯數單價
2信義蘋果紅茶3445
3信義鮮奶茶2655
4信義青茶940
5板橋蘋果紅茶4345
6板橋鮮奶茶1158
7板橋青茶2240
8左營蘋果紅茶1742
9左營鮮奶茶4752
10左營青茶1238

我想知道「信義這家店,客人平均一杯付多少錢」。先手算。單價直接平均的話,是 (45 + 55 + 40) ÷ 3 ≈ 46.67。但信義的青茶才賣 9 杯,蘋果紅茶賣了 34 杯,青茶憑什麼跟蘋果紅茶占一樣多?

依杯數加權才對得上實際收入:(34 × 45 + 26 × 55 + 9 × 40) ÷ (34 + 26 + 9) = 3320 ÷ 69 ≈ 48.12。這兩個數字差了 1 元多,三家店每一家都這樣算,排名甚至會變,後面會看到。

怎麼選

想知道用這個條件寫法在哪
符合一個條件的平均AVERAGEIFSUMIF 與 COUNTIF 入門
符合多個條件的平均AVERAGEIFSSUMIFS 進階陷阱
符合條件的最大、最小MAXIFS、MINIFSSUMIFS 進階陷阱
依數量加權的平均AVERAGE.WEIGHTED下面
加權平均又有條件AVERAGE.WEIGHTED 搭配 FILTER下面

重點只有一個:AVERAGEIF 系列是「先篩再平均」,每一列的分量一樣;AVERAGE.WEIGHTED 是「每一列的分量不一樣」,兩個功能不能互相取代,要看你的題目有沒有「數量」這一欄。

條件平均與條件極值

先把這四個函式在這組資料上各跑一次,看清楚它們算的是「單價欄的簡單平均或極值」,不管杯數。

鮮奶茶三家店的平均單價,手算 (55 + 58 + 52) ÷ 3 = 55:

Google 試算表公式
fx

鮮奶茶的單價平均

=AVERAGEIF(B2:B10, "鮮奶茶", D2:D10)

結果是 55。信義而且不是青茶的單價平均,(45 + 55) ÷ 2 = 50:

Google 試算表公式
fx

信義且排除青茶的單價平均

=AVERAGEIFS(D2:D10, A2:A10, "信義", B2:B10, "<>青茶")

結果是 50。鮮奶茶最高的單價:

Google 試算表公式
fx

鮮奶茶最高單價

=MAXIFS(D2:D10, B2:B10, "鮮奶茶")

結果是 58。左營最低的單價:

Google 試算表公式
fx

左營最低單價

=MINIFS(D2:D10, A2:A10, "左營")

結果是 38。要注意 AVERAGEIF 的平均範圍放在最後(還可以省略),AVERAGEIFS 跟 MAXIFS 則是第一個參數就是要算的範圍,我自己常把這兩種順序搞反,寫完回頭看一眼。沒有任何一列符合條件的話會是什麼結果,在 條件彙總實戰 有整理。

加權平均

AVERAGE.WEIGHTED

依權重算平均,權重大的值對結果影響比較大。

語法:

  • 數值:要平均的範圍。
  • 權重:每個數值對應的權重,大小要跟數值一樣。這個例子就是杯數。
  • 其他數值、其他權重:選填,可以成對一直往後加。

九筆全部的加權平均單價,先手算:(34 × 45 + 26 × 55 + 9 × 40 + 43 × 45 + 11 × 58 + 22 × 40 + 17 × 42 + 47 × 52 + 12 × 38) ÷ 221 = 10387 ÷ 221 = 47。

Google 試算表公式
fx

依杯數加權的平均單價

=AVERAGE.WEIGHTED(D2:D10, C2:C10)

你應該會得到 47。同一批單價直接用 AVERAGE,是 46.11(四捨五入到小數第二位),比實際平均每杯收入低。

權重也不一定是杯數。算成績最常見。另開一張工作表,三次考試 78、64、91 分,比重是 0.25、0.35、0.4,A2:A4 放分數、B2:B4 放比重:

Google 試算表公式
fx

三次考試依比重加權

=AVERAGE.WEIGHTED(A2:A4, B2:B4)

手算 78 × 0.25 + 64 × 0.35 + 91 × 0.4 = 78.3,因為比重加起來剛好是 1,結果就是 78.3。比重加起來不是 1 也可以,函式會自己除以權重的總和。

資料分在兩個地方的話,用後面兩個參數接上去。分數在 A2:A3、比重在 B2:B3,第三次考試在 A4、B4 單獨一格:

Google 試算表公式
fx

用其他數值、其他權重補上第三筆

=AVERAGE.WEIGHTED(A2:A3, B2:B3, A4, B4)

結果同樣是 78.3。我個人還是傾向把資料排成連續兩欄,一個範圍搞定,比較不容易漏。

這個函式沒有條件參數;官方說明要求權重不可為負、至少有一個要大於 0,否則會出錯。下一節就是怎麼加條件。

如果你在 Excel 用,要注意 Excel 沒有 AVERAGE.WEIGHTED,加權平均要寫成 。下面「不靠 FILTER」那種 SUMPRODUCT 寫法,兩邊都能用。

每家門市的加權平均單價

我想要一張表:每家門市賣了幾杯、簡單平均單價、加權平均單價,放在 F1:I4,F 欄是門市名稱。

加權平均加條件,最短的寫法是用 FILTER 先把這家店的單價和杯數挑出來,再丟給 AVERAGE.WEIGHTED。信義是:

Google 試算表公式
fx

信義的加權平均單價,四捨五入到小數第二位

=ROUND( AVERAGE.WEIGHTED( FILTER($D$2:$D$10, $A$2:$A$10=F2), FILTER($C$2:$C$10, $A$2:$A$10=F2) ), 2 )

F2 是「信義」,結果 48.12,跟前面手算的 3320 ÷ 69 一樣。

另一種是不靠 FILTER,直接用 SUMPRODUCT 算分子、SUMIFS 算分母,兩個函式都是之前介紹過的:

Google 試算表公式
fx

用 SUMPRODUCT 與 SUMIFS 算信義的加權平均單價

=ROUND( SUMPRODUCT(($A$2:$A$10=F2)*$C$2:$C$10*$D$2:$D$10) / SUMIFS($C$2:$C$10, $A$2:$A$10, F2), 2 )

一樣是 48.12。杯數那欄用 SUMIFS,簡單平均用 AVERAGEIFS,往下拖曳到板橋、左營:

門市總杯數簡單平均單價加權平均單價
信義6946.6748.12
板橋7647.6745.43
左營764447.55

簡單平均來看,板橋比信義貴(47.67 對 46.67);加權之後反過來,信義 48.12、板橋 45.43。原因是板橋的蘋果紅茶賣了 43 杯,單價只有 45,把整體拉低了。報表只看簡單平均的話,結論剛好相反。

兩種寫法我比較常用 SUMPRODUCT 加 SUMIFS,因為分母那個總杯數本來就想列在報表上。要一次算很多家店、不想看到一長串的話,FILTER 的寫法比較好讀,這就看個人了。

1

左營的加權平均單價

用 AVERAGE.WEIGHTED 搭配 FILTER,算出左營的加權平均單價,四捨五入到小數第二位。

算平均之前先看一眼,每一列的分量一不一樣,不一樣就用 AVERAGE.WEIGHTED。條件寫法如果還不熟,回頭看前面連結的幾篇。我是喜特先生,Mr. Sheet,我們下個教學見!

分享:
#加權平均#AVERAGE.WEIGHTED#AVERAGEIFS#條件計算
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。