Google Sheets 匹配A列Cat/Dog 返回对应B列最大值的公式
Google Sheets 匹配分类后计算去重B列最大值实现方案
需求对应
表格结构为A列存放分类标签、B列存放对应关联数值,需要实现的计算逻辑为:在全量A列范围内匹配D2单元格的指定内容,定位所有匹配行,对这些行对应的B列数值去重后,返回去重集合中的最大值。
可直接套用的公式
基础版
=MAX(UNIQUE(FILTER(B:B, A:A=D2)))
各部分执行逻辑:
- 第一步用
FILTER全列扫描,筛选出所有A列值和D2完全相等的行,提取这些行对应的B列数值 - 第二步用
UNIQUE对提取到的B列数值做去重,移除重复的数值项 - 第三步用
MAX在去重后的数值集合中计算最大值
兼容优化版
解决无匹配数据报错、空值干扰的问题:
=IFERROR(MAX(UNIQUE(FILTER(B:B, (A:A=D2)*(B:B<>"")))), "无匹配数据")
- 新增
B:B<>""的判断条件,自动跳过筛选范围内的空单元格,避免空值参与计算拉低结果 - 外层嵌套
IFERROR,当没有任何A列值匹配D2的内容时,直接返回“无匹配数据”的提示文本,不会弹出#N/A类的错误标识
效率提示:以上公式全部基于Google Sheets原生数组函数编写,哪怕直接引用全列范围也不会出现表格卡顿。和传统的逐行判断嵌套IF、SUMPRODUCT硬算的公式比,运算效率高很多,后续更新A/B列的数据源时,公式会自动同步计算结果,不需要手动调整。
内容的提问来源于stack exchange,提问作者Kevin Ngo
相关产品推荐
相关产品推荐

