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

如何在Google Sheets QUERY查询中拆分A列为两列(下划线分隔)

解决Google Sheets QUERY结果拆分列的问题

直接用LET函数封装原QUERY结果,再针对性拆分目标列,这样只执行一次查询,高效且避免重复计算,最终公式如下:

=LET(
  query_result, QUERY(Sales!A1:I,"SELECT B, A, F, H, G, I WHERE D = 'Projects' and B >= date '"&TEXT(TODAY(),"yyyy-mm-dd")&"'",1),
  header, INDEX(query_result,1,),
  data, INDEX(query_result,2,):INDEX(query_result,ROWS(query_result),),
  split_resource, SPLIT(INDEX(data,,2), "_"),
  new_header, HSTACK(INDEX(header,1), {"Resource Part 1", "Resource Part 2"}, INDEX(header,3):INDEX(header,COLUMNS(header))),
  new_data, HSTACK(INDEX(data,,1), split_resource, INDEX(data,,3):INDEX(data,,COLUMNS(data))),
  VSTACK(new_header, new_data)
)

操作逻辑拆解

  1. 缓存查询结果:用LET把原QUERY的完整结果(含表头)存到query_result变量里,避免重复执行查询
  2. 分离表头与数据:分别提取原查询的表头行header和数据区域data
  3. 拆分目标列:对数据区域的第二列(也就是原Sales表的A列,对应查询结果里的"Resource"列)用SPLIT以下划线为分隔符拆分成两列
  4. 重构表头:把原表头的第一列(Date)、新增的两个拆分列名(Resource Part 1/2)、原表头剩余列合并成新表头
  5. 重构数据:把原数据的第一列、拆分后的两列、原数据剩余列横向合并成新数据区域
  6. 合并最终结果:用VSTACK把新表头和新数据纵向拼接,得到完整的拆分后结果

为什么你之前的尝试出错?

  • 直接在QUERY外层套ARRAYFORMULA+SPLIT会把表头也纳入拆分范围,而表头"Resource"没有下划线,导致拆分后出现空值或格式混乱
  • 没有正确区分表头和数据区域,拆分逻辑覆盖了非数据行,最终只返回表头或触发报错

额外说明

如果你的Resource列存在没有下划线的内容,SPLIT会返回单一列,此时HSTACK会自动补全空值;如果想忽略这类异常行,可以给SPLIT加参数:SPLIT(INDEX(data,,2), "_", TRUE, TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:05:21