Google Sheets:用ARRAYFORMULA计算各类别最大值(规避QUERY)
高性能实现:用ARRAYFORMULA批量匹配类别最大值
针对你的需求——给含唯一类别的表格批量填充对应类别的最大值,且避免嵌套QUERY保障性能,可使用以下方案:
假设唯一类别表格的类别列位于Sheet2!A2:A(表头在A1,数据从A2开始),在需要填充最大值的单元格(比如Sheet2的B2)输入公式:
=ARRAYFORMULA(IF(ISBLANK(Sheet2!A2:A),,MAXIFS(TableA!B:B,TableA!A:A,Sheet2!A2:A)))
公式说明
ARRAYFORMULA:实现整列批量计算,无需手动下拉公式,适配类别数量动态变化的场景IF(ISBLANK(...),, ...):过滤空类别行,避免空单元格返回0值,保持表格整洁MAXIFS:原生的单条件最大值函数,直接匹配Sheet2的类别与TableA的类别,返回对应数值的最大值。该函数支持数组输入,配合ARRAYFORMULA可高效处理数千个类别,性能远优于嵌套QUERY的方案(QUERY属于重计算函数,嵌套后会反复执行,大幅降低效率)
性能优化建议
如果TableA的数据范围是固定的(而非整列),将公式中的TableA!A:A和TableA!B:B替换为具体数据范围(比如TableA!A2:B11),可进一步提升计算效率:
=ARRAYFORMULA(IF(ISBLANK(Sheet2!A2:A),,MAXIFS(TableA!B2:B11,TableA!A2:A11,Sheet2!A2:A)))
验证示例
针对你提供的TableA数据,当Sheet2的A列依次为A、B、C时,公式将返回4、9、6,与各分类的最大值完全匹配。
内容的提问来源于stack exchange,提问作者Aleister Tanek Javas Mraz
相关产品推荐
相关产品推荐

