Excel按条件求最大值之和:12岁及以上儿童津贴总额公式求助
计算12岁及以上儿童的津贴总额(每个ID仅计一次)
没问题!我完全明白你的需求——你需要计算每个年龄≥12岁的唯一儿童(ID)对应的津贴总和,且每个ID只统计一次(对应你给出的数据集,结果为5+2+2=9)。下面是两种适配不同Excel版本的公式方案:
方案1:适用于Excel 2019及以后版本(简洁版)
如果你的Excel支持UNIQUE和MAXIFS函数,直接用这个公式就好:
=SUMPRODUCT(MAXIFS(C:C, A:A, UNIQUE(A:A), B:B, ">=12"))
公式拆解:
UNIQUE(A:A):提取数据集中所有唯一的儿童IDMAXIFS(C:C, A:A, UNIQUE(A:A), B:B, ">=12"):针对每个唯一ID,找到其年龄≥12的记录里最大年龄对应的津贴(匹配你示例中Fred取18岁对应5的逻辑)SUMPRODUCT:把所有符合条件的津贴值加总,最终得到结果9
方案2:适用于旧版Excel(数组公式)
如果你的Excel版本不支持UNIQUE和MAXIFS,可以用这个数组公式(输入完成后需要按Ctrl+Shift+Enter确认生效):
=SUM(IF(FREQUENCY(IF(B2:B6>=12, MATCH(A2:A6, A2:A6, 0)), ROW(A2:A6)-ROW(A2)+1), C2:C6*(B2:B6=MAX(IF(A2:A6=A2:A6, B2:B6)))))
公式拆解:
- 先通过
IF(B2:B6>=12, MATCH(A2:A6, A2:A6, 0))筛选出年龄≥12的ID匹配位置 FREQUENCY函数确保每个ID仅被统计一次- 最后通过
MAX(IF(A2:A6=A2:A6, B2:B6))找到每个ID的最大年龄,对应提取津贴并求和
验证示例数据
针对你提供的数据集,两个公式都会返回正确结果9,完全符合你的预期。
内容的提问来源于stack exchange,提问作者Olivebel
相关产品推荐
相关产品推荐

