Google Sheets数据透视表问题:按姓名统计每年最大日期对应值求和
按姓名分组提取每年最后日期对应Value并求和的解决方案
假设你的原始数据位于A:C列(A=姓名,B=日期,C=数值),可以用以下公式实现需求:
=SUM(ARRAYFORMULA(XLOOKUP(QUERY(A:C,"SELECT MAX(B) WHERE A IS NOT NULL GROUP BY A, YEAR(B)")&QUERY(A:C,"SELECT A WHERE A IS NOT NULL GROUP BY A, YEAR(B)"),B:B&A:A,C:C,"",0)))
公式逻辑说明
QUERY(A:C,"SELECT MAX(B) WHERE A IS NOT NULL GROUP BY A, YEAR(B)"):按姓名+年份分组,提取每组的最后日期QUERY(A:C,"SELECT A WHERE A IS NOT NULL GROUP BY A, YEAR(B)"):同步提取对应分组的姓名- 将日期与姓名拼接成唯一标识,通过
XLOOKUP匹配原始数据中对应行的Value - 最后用
SUM对所有匹配到的数值求和,即可得到每年的总结果(符合你要求的两年结果均为2)
如果需要分别统计每一年的结果,可以添加年份筛选条件,比如统计2023年:
=SUM(ARRAYFORMULA(XLOOKUP(QUERY(A:C,"SELECT MAX(B) WHERE A IS NOT NULL AND YEAR(B)=2023 GROUP BY A"),B:B&A:A,C:C,"",0)))
内容的提问来源于stack exchange,提问作者asher
相关产品推荐
相关产品推荐

