按季度汇总交易金额并获取对应季度最后交易日期的Excel公式实现问询
按季度汇总交易金额并获取对应季度最后交易日期的Excel公式实现问询
嘿,我来帮你搞定这个需求!针对你那从2011到2024年、足足200多条的交易数据,要按季度汇总金额,同时拿到该季度内实际发生的最后一笔交易日期(毕竟你说有些月份有多笔交易,不能直接拿固定的季度末日期),我给你分步骤讲两种适配不同Excel版本的实现方式:
第一步:生成统一的季度标识
先给每一条交易数据打上对应的季度标签,假设你的日期在A列(从A2开始),交易金额在B列:
- 在C2单元格输入公式:
="Q" & ROUNDUP(MONTH(A2)/3,0) & " " & YEAR(A2) - 下拉填充到所有行,这样每条数据都会生成类似
Q2 2011的季度标识。
第二步:按季度汇总交易金额
这里分两种情况,避免同一季度重复显示汇总结果:
方式1:通用版(适配所有Excel版本)
在D2单元格输入:
=IF(COUNTIF($C$2:C2,C2)=1,SUMIF($C$2:$C$201,C2,$B$2:$B$201),"")
下拉填充后,同一个季度只会在第一次出现时显示汇总金额,后续重复的季度行留空。
方式2:Excel 365/2021动态数组版(更简洁)
如果你的Excel支持动态数组,直接在D2输入:
=SUMIFS(B2:B201,C2:C201,UNIQUE(C2:C201))
它会自动生成所有唯一季度对应的汇总金额,不用手动下拉。
第三步:获取季度内最后一笔交易日期
这是核心需求,要取该季度里实际存在的最晚交易日期,同样分版本:
方式1:Excel 2019及以后/365版本
在E2单元格输入(配合第一步的季度标识):
=IF(COUNTIF($C$2:C2,C2)=1,MAXIFS($A$2:$A$201,$C$2:$C$201,C2),"")
下拉填充后,每个唯一季度会显示该季度的最后交易日期。
方式2:旧版Excel(无MAXIFS)
用数组公式实现,在E2输入:
=IF(COUNTIF($C$2:C2,C2)=1,MAX(IF($C$2:$C$201=C2,$A$2:$A$201)),"")
输入完成后按住Ctrl+Shift+Enter确认(这是旧版数组公式的必填操作),再下拉填充。
方式3:Excel 365动态数组版
直接在E2输入:
=MAXIFS(A2:A201,C2:C201,UNIQUE(C2:C201))
自动匹配所有唯一季度的最后交易日期。
小提示
- 记得把金额列设置成货币格式,日期列设置成你需要的日期格式(比如
DD/MM/YYYY); - 如果你的数据行数不是201,记得把公式里的
$C$2:$C$201这类范围改成实际的行号哦。
备注:内容来源于stack exchange,提问作者DETIVA




