You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中用QUERY查询拆分后的CSV并适配ARRAYFORMULA

解决方案

先明确下:从你给出的示例(指定5返回4、指定15返回10)来看,实际需求是找到小于等于指定数值的最大数;如果是你描述的“大于等于指定数值的最小数”,5应该返回10、15返回17。下面分别给出两种需求的公式,且都支持ARRAYFORMULA批量处理:

场景1:找小于等于指定值的最大数(匹配你的示例)

单值处理公式

假设指定数值在单元格A1:

=QUERY(SPLIT("1,4,10,17",","), "select Col1 where Col1 <= "&A1&" order by Col1 desc limit 1", 0)

逻辑:拆分字符串得到数字数组后,QUERY筛选出所有≤指定值的数,降序排列后取第一个(即符合条件的最大值)。

数组批量处理公式(支持多指定值)

如果指定数值在A1:A列,用MAP配合QUERY实现批量计算(新版Google Sheets支持):

=ARRAYFORMULA(MAP(A1:A, LAMBDA(x, IF(x="",,QUERY(SPLIT("1,4,10,17",","), "select Col1 where Col1 <= "&x&" order by Col1 desc limit 1", 0)))))

逻辑:遍历A1:A的每个数值,对每个值单独执行QUERY筛选逻辑,空值单元格返回空。

场景2:找大于等于指定值的最小数(按你原描述)

只需调整QUERY的筛选条件和排序方式:

单值处理公式

=QUERY(SPLIT("1,4,10,17",","), "select Col1 where Col1 >= "&A1&" order by Col1 asc limit 1", 0)

数组批量处理公式

=ARRAYFORMULA(MAP(A1:A, LAMBDA(x, IF(x="",,QUERY(SPLIT("1,4,10,17",","), "select Col1 where Col1 >= "&x&" order by Col1 asc limit 1", 0)))))

内容的提问来源于stack exchange,提问作者randonoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:15:09