如何用Excel公式计算指定日期前/当日各ID仅计一次的金额总和?
解决重复ID的指定日期前金额求和问题
适用Excel 365/2021(支持动态数组)
直接用动态数组公式实现,逻辑清晰且无需特殊输入:
假设数据源范围:
- ID列:
A2:A100 - 日期列:
B2:B100 - 金额列:
C2:C100 - 指定日期存于
E2
公式:
=SUM(XLOOKUP(UNIQUE(FILTER(A2:A100,B2:B100<=E2)),A2:A100,C2:C100,0,0,2))
分步逻辑:
FILTER(A2:A100,B2:B100<=E2):筛选出指定日期及之前的所有IDUNIQUE(...):提取上述ID的唯一值XLOOKUP(...,2):对每个唯一ID,从数据源从后往前匹配,返回对应最新记录的金额SUM(...):对所有符合要求的金额求和
适用旧版Excel(不支持动态数组)
使用数组公式(输入后按Ctrl+Shift+Enter确认生效):
=SUM(IF(FREQUENCY(IF(B2:B100<=E2,MATCH(A2:A100,A2:A100,0)),ROW(A2:A100)-ROW(A2)+1),C2:C100))
分步逻辑:
IF(B2:B100<=E2,MATCH(A2:A100,A2:A100,0)):仅保留指定日期前的记录,返回每个ID首次出现的行号FREQUENCY(...):统计行号出现频率,仅每个ID的最新记录会被标记为有效项(频率为1)IF(...,C2:C100):仅保留最新记录的金额SUM(...):求和有效金额
验证提示
- 手动核对几个重复ID的最新记录,确认金额是否被正确计入
- 确保所有日期格式统一,避免因格式差异导致筛选错误
内容的提问来源于stack exchange,提问作者Mika G.
相关产品推荐
相关产品推荐

