全部練習題 / 數學

已付還是未付?(SUMIFS + IF)

中等 數學
題目說明
提示 0/4
官方解法 2
–
測試案例
1
2
3
重設
提交
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
正在載入互動式試算表...
正在準備儲存格資料與公式求解引擎
○ 就緒 請在反白的目標儲存格輸入公式,然後點「提交」。

題目

題目說明

月結對帳:發票清單在 A2:B5,付款紀錄在 D2:E8,同一張發票可能分好幾次付款。針對 A2 這張發票,把「Paid」或「Outstanding」填進 Status 儲存格 G2。

要看的是「這張發票的付款總額」,不是「有沒有一筆付款」——一筆分期不足以結清 500 的發票。

題目資料

用表格檢視整份資料(可選取、可複製)
這道題的資料表
ABDEG
1InvoiceInvoicedInvoicePaidStatus
2INV-501500INV-501200
3INV-502320INV-501300
4INV-503180INV-502120
5INV-504900INV-503180
6INV-504400
7INV-504400
8INV-502200

觀念解析

付款紀錄裡一張發票會有很多列,VLOOKUP 只會抓到第一筆。SUMIFS 把整份紀錄收斂成一張發票一個總額,再用 IF 轉成狀態。部分付款必須落在 Outstanding,所以比較要用 >= 對發票金額。

解題思路

答案寫在 G2。送出時我們會換 3 組輸入重跑你的公式,寫死數字一定過不了 —— 公式必須跟著儲存格走。

  1. 目標儲存格是 G2
  2. 先把付款紀錄依 A2 加總:SUMIFS
  3. 再拿這個總額和 B2 比
  4. 公式形狀:=IF(?, ?, ?)——條件是一個比較,不是查表

官方解法

展開 2 種解法(建議先自己試一次)

解法 1:SUMIFS 放進 IF

=IF(SUMIFS($E$2:$E$8, $D$2:$D$8, A2) >= B2, "Paid", "Outstanding")

INV-501 有兩筆付款 200 + 300 = 500,剛好等於發票金額 500,所以是 Paid。把其中一筆改小,同一條公式就變成 Outstanding。

解法 2:SUMIF,加總範圍放最後

=IF(SUMIF($D$2:$D$8, A2, $E$2:$E$8) >= B2, "Paid", "Outstanding")

SUMIF 的第一個參數是條件範圍、最後才是加總範圍,其餘邏輯相同。把這兩個範圍對調,就是最常見的 SUMIF/SUMIFS 混淆。

函數指南

相關練習

常見問題

怎麼判斷一張發票是否付清?

把該發票的付款加總後與發票金額比較:=IF(SUMIFS(付款金額, 發票欄, 發票號) >= 發票金額, "Paid", "Outstanding")。

為什麼不能用 VLOOKUP 查付款紀錄?

VLOOKUP 只回傳第一筆符合的列,分兩次付款的客戶會被誤判成未付。只有先用 SUMIFS 彙總才正確。