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

如何在Google Sheets中使用Query()函数为数据行添加行索引

谷歌表格QUERY函数内生成独立行索引的实现方法

需求说明

需要在QUERY函数中实现类似内置ROW()函数的效果,在查询结果内生成行索引,且满足以下规则:

  • 索引仅在查询结果内计数,和原表格行号无关
  • 查询使用两个不同工作表作为数据源,第二个数据源的查询结果接入时,行索引需要从1重新开始计数

效果示意图

初始实现代码

最初拼接的查询逻辑如下,暂未加入行索引字段:

={
                query(IMPORTRANGE('Static Data'!$B$2,'Static Data'!$B$3),
                        "select Col" &  ArrayFormula(textjoin(", Col",true,column('Static Data'!$A$22:$AC$22))) & ", 'BAU'
                        where 
                        Col"& 'Static Data'!$B$22 &" is not null
                        label 'BAU' 'SOURCE'", 
                1);
                
                query(IMPORTRANGE('Static Data'!$B$2,'Static Data'!$B$5),
                        "select Col" &  ArrayFormula(textjoin(", Col",true,column('Static Data'!$A$22:$AC$22))) & ", 'ICS'
                        where 
                        Col"& 'Static Data'!$B$22 &" is not null
                        label 'ICS' ''", 
                0)}

最终可行方案

实现思路

QUERY函数本身没有内置的行号生成函数,因此可以在导入数据源时,先通过SEQUENCE+ROWS组合给每个数据源单独追加自增序列,再传入QUERY进行查询,两个数据源的序列各自独立生成,自然就能实现第二个数据源索引重新从1开始的需求。

可运行代码

调整后已将行索引字段放到表格末尾,符合展示要求:

=INDEX({QUERY({IMPORTRANGE('Static Data'!$B$2, 'Static Data'!$B$3),SEQUENCE(ROWS(
 IMPORTRANGE('Static Data'!$B$2, 'Static Data'!$B$3)))},
 "select Col1,Col"&TEXTJOIN(",Col", 1, 1+COLUMN('Static Data'!$A$22:$AC$22))&",'BAU'
  where Col"&1+'Static Data'!$B$22&" is not null
  label 'BAU''SOURCE'", 1);
 QUERY({IMPORTRANGE('Static Data'!$B$2, 'Static Data'!$B$5),SEQUENCE(ROWS(
 IMPORTRANGE('Static Data'!$B$2, 'Static Data'!$B$5)))+1},
 "select Col1,Col"&TEXTJOIN(",Col", 1, 1+COLUMN('Static Data'!$A$22:$AC$22))&",'ICS'
  where Col"&1+'Static Data'!$B$22&" is not null
  label 'ICS'''", )})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:24:04