仅用Excel公式按C_ID统计付款状态为PAID的金额总和
解决方案
修复原有UNIQUE+SUMIFS的问题
你遇到的引用地址随行变化,是因为使用了相对单元格引用指向"PAID"。解决方法有两种:
- 若要引用固定单元格的"PAID",将引用改为绝对引用(例如
$R$6); - 更直接的方式是在SUMIFS中直接使用常量文本
"PAID",彻底避免引用单元格带来的偏移问题。
如果想用动态数组一次性生成所有结果(无需手动下拉公式),可以用以下写法:
假设C_ID列是Q:Q,金额列是S:S,付款状态列是R:R,在空白单元格输入:
=HSTACK(UNIQUE(Q:Q), SUMIFS(S:S, Q:Q, UNIQUE(Q:Q), R:R, "PAID"))
公式会自动溢出所有唯一C_ID,以及对应的PAID金额总和。
更优的Microsoft 365专属方法
使用GROUPBY函数(Microsoft 365及以上版本支持),这是专门为分组聚合设计的动态数组函数,写法更简洁高效:
=GROUPBY(Q:Q, S:S, SUM, , R:R="PAID")
参数说明:
Q:Q:分组依据(C_ID列)S:S:需要聚合的数值列(金额)SUM:聚合方式(求和)- 第四个参数留空:默认返回所有分组结果
R:R="PAID":筛选条件,仅统计付款状态为PAID的记录
如果需要更清晰的逻辑,可以先筛选出PAID的记录再分组:
=GROUPBY(FILTER(Q:Q, R:R="PAID"), FILTER(S:S, R:R="PAID"), SUM)
内容的提问来源于stack exchange,提问作者Paras Chopra
相关产品推荐
相关产品推荐

