如何在Google Sheets中用QUERY()和FILTER()按条件返回最新记录?
Google Sheets QUERY公式返回空结果的排查与修正
问题核心原因
原公式中where子句给最大值添加了单引号',如果Col6(对应原表F列)是数字类型,单引号会把最大值转为字符串,导致数字与字符串无法匹配,最终返回空结果。
修正方案
方案1:移除最大值的单引号
直接去掉where子句中包裹最大值的单引号,让数字和数字匹配:
=QUERY( FILTER('BD Financeiro'!A2:Y; 'BD Financeiro'!X2:X=1); "select Col1, Col13, Col14, Col15, Col20, Col5, Col8, Col10, Col11, Col23, Col21, Col16, Col17, Col18, Col19, Col22 where Col6 = "&max( FILTER('BD Financeiro'!F2:F; 'BD Financeiro'!X2:X=1)) )
方案2:用QUERY子查询简化公式(更高效)
避免嵌套FILTER,直接在QUERY内部完成筛选和最大值匹配,同时确保类型一致:
=QUERY('BD Financeiro'!A2:Y; "select Col1, Col13, Col14, Col15, Col20, Col5, Col8, Col10, Col11, Col23, Col21, Col16, Col17, Col18, Col19, Col22 where Col24 = 1 and Col6 = (select max(Col6) from 'BD Financeiro'!A2:Y where Col24 = 1)")
注:Col24对应原表的X列(A列为Col1,依次类推)
额外排查点
- 确认
'BD Financeiro'!X2:X中确实存在值为1的行,否则max(FILTER(...))会返回错误,导致QUERY无结果。 - 验证
Col6对应的数据类型:如果是文本格式的数字,可尝试用TO_TEXT(max(...))包裹最大值并保留单引号,但优先建议将列转为数字格式。
内容的提问来源于stack exchange,提问作者onit
相关产品推荐
相关产品推荐

