前三名訂單的合計(SUMIF + LARGE)
題目
題目說明
成交記錄 A2:C9 有八筆金額落差很大的訂單。獎金只按金額最大的三筆發放,所以要算出「前三名合計」——不能加輔助欄,也不能先把資料排序。請把結果放進 Top 3 total 儲存格 E2。
門檻不是固定數字:測試案例會讓不同的訂單擠進前三名,所以分界線必須由資料本身算出來。
題目資料
用表格檢視整份資料(可選取、可複製)
| A | B | C | E | |
|---|---|---|---|---|
| 1 | Order | Rep | Amount | Top 3 total |
| 2 | ORD-2001 | Ana Li | 1250 | |
| 3 | ORD-2002 | Ben Kim | 800 | |
| 4 | ORD-2003 | Chen Wu | 960 | |
| 5 | ORD-2004 | Dana Ortiz | 600 | |
| 6 | ORD-2005 | Eve Novak | 330 | |
| 7 | ORD-2006 | Ana Li | 700 | |
| 8 | ORD-2007 | Chen Wu | 480 | |
| 9 | ORD-2008 | Ben Kim | 1200 |
觀念解析
LARGE(range, 4) 是第四大的金額,因此 SUMIF(range, ">"&LARGE(range, 4)) 只會留下它上面的值——正好是前三名。常見的另一種寫法是 ">="&LARGE(range, 3),直接把第三大含進來。兩種都建立在「金額不重複」之上:如果第三、第四名並列,嚴格大於的版本會少算、">=" 版本會多算,這時真正安全的是 SUM(LARGE(range, {1,2,3}))。
解題思路
答案寫在 E2。送出時我們會換 3 組輸入重跑你的公式,寫死數字一定過不了 —— 公式必須跟著儲存格走。
- 目標儲存格是 E2
- 金額在 C2:C9——表上沒有排名欄可以篩選
- LARGE(C2:C9, 4) 會回傳第四大的金額,嚴格大於它的就是前三名
- 形狀:=SUMIF(?, ">"&LARGE(?, ?), ?)
官方解法
展開 2 種解法(建議先自己試一次)
解法 1:嚴格大於第四大
=SUMIF(C2:C9, ">"&LARGE(C2:C9, 4))
LARGE(C2:C9, 4) 在執行時才算出門檻——第四大的金額——條件再把大於它的值全部加起來。所謂「前 N 名」的套路就是把 4 換成 N+1,資料不需排序、也不需輔助欄。
解法 2:大於等於第三大
=SUMIF(C2:C9, ">="&LARGE(C2:C9, 3), C2:C9)
同樣三筆,換一條路:以第三大的金額為門檻並把它包含進來。推理解釋起來更短,但遇到第三名並列時會悄悄出錯——你會拿到四筆而不是三筆。
函數指南
常見問題
不排序資料也能算出前三名合計嗎?
=SUMIF(C2:C9, ">"&LARGE(C2:C9, 4)) 會把大於第四大金額的值全部加起來。要前 N 名就把 4 換成 N+1——門檻由資料算出,所以原始順序可以任意。
如果第三名有兩筆並列怎麼辦?
上面兩種寫法都會失準:嚴格大於會默默漏掉並列的那兩筆(結果少於三筆),而 ">=" 會多收一筆變成四筆。可能出現並列時,請用 =SUM(LARGE(C2:C9, {1,2,3})),它按名次取,不靠門檻。
可以用 SUMPRODUCT 代替嗎?
可以:=SUMPRODUCT(LARGE(C2:C9, {1,2,3})) 或 =SUMPRODUCT((C2:C9>=LARGE(C2:C9,3))*C2:C9)。SUMIF 讀起來更短;當同一條公式還要處理 OR 或區分大小寫時,SUMPRODUCT 才是後備方案。