已付还是未付?(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 混淆。

函数指南

相关 Excel 练习

常见问题

怎么判断一张发票是否付清?

把该发票的付款汇总后与发票金额比较:=IF(SUMIFS(付款金额, 发票列, 发票号) >= 发票金额, "Paid", "Outstanding")。

为什么不能用 VLOOKUP 查付款记录?

VLOOKUP 只返回第一笔匹配的行,分两次付款的客户会被误判成未付。只有先用 SUMIFS 汇总才正确。