Google Sheets:如何提取匹配列N最大值的列A中object_ID?
解决QUERY公式提取匹配最大值对应列的问题
原公式报错的核心问题是**WHERE MAX(N)的写法不符合Google Sheets QUERY语法**——聚合函数(如MAX)不能直接作为WHERE子句的条件,WHERE仅用于基于行的原始值筛选,聚合逻辑需要结合其他方式实现。
正确公式方案
方案1:提取所有匹配最大值的A列值
如果N列有多个行等于最大值,这个公式会返回所有对应的object_ID:
=IFERROR(QUERY('Compiled Table'!$A$1:$N$104, "select A where N = "&MAX('Compiled Table'!$N$1:$N$104)&"", 0), "0")
- 逻辑:先用
MAX('Compiled Table'!$N$1:$N$104)算出N列的最大值,再将其作为条件传入QUERY,筛选出N列等于该最大值的行,提取A列内容。 - 参数说明:第三个参数
0表示忽略表头(如果你的数据表头在第一行,需要保留表头则改为1)。
方案2:仅提取第一个匹配最大值的A列值
如果只需要第一个出现的匹配值,用VLOOKUP更简洁:
=IFERROR(VLOOKUP(MAX('Compiled Table'!$N$1:$N$104), {'Compiled Table'!$N$1:$N$104, 'Compiled Table'!$A$1:$A$104}, 2, FALSE), "0")
- 逻辑:将N列和A列组成临时数组,用VLOOKUP精确匹配最大值对应的A列内容。
原公式错误点说明
原公式中的"select (A) where MAX(N) group by A"逻辑混乱:
WHERE MAX(N)语法无效,聚合函数不能直接用于WHERE筛选;- 你的需求是匹配最大值对应的行,并非按A列分组聚合,所以
GROUP BY A完全没必要。
内容的提问来源于stack exchange,提问作者raygo
相关产品推荐
相关产品推荐

