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

如何用IMPORTRANGE获取表格中每行最后一个非空单元格值

解决Google Sheets中3万+行数据取每行最后非空值的高效方案

方案1:已知列数时用QUERY+IMPORTRANGE+COALESCE(高效直接)

直接利用COALESCE从右到左返回第一个非空值的特性,结合QUERY过滤和导入数据,只需一个公式就能生成所有结果,无需全量导入后逐个单元格设置公式:

=QUERY(IMPORTRANGE("你的原始表格URL","原始表名!A:F"), "SELECT Col1, COALESCE(Col6, Col5, Col4, Col3, Col2) WHERE Col1 IS NOT NULL", 1)

说明:

  • Col1对应原始表的profile_id列,确保每个ID与结果一一对应
  • COALESCE(Col6, Col5, Col4, Col3, Col2)从最右侧列开始往左查找,第一个非空值就是该行最后一个有效数据
  • 末尾参数1表示原始数据包含表头,无表头则改为0
  • 首次使用IMPORTRANGE需先单独运行授权公式(如=IMPORTRANGE("你的表格URL","原始表名!A1")),完成权限验证后再替换为上述公式

方案2:列数不固定时用BYROW+XMATCH(灵活通用)

如果原始数据列数可能变化,不想手动罗列所有列名,可结合BYROW和XMATCH实现动态查找,同样只需一个公式:

=LET(
  imported_data, IMPORTRANGE("你的原始表格URL","原始表名!A:F"),
  profile_ids, INDEX(imported_data,,1),
  data_range, INDEX(imported_data,,2):INDEX(imported_data,,COLUMNS(imported_data)),
  last_non_empty, BYROW(data_range, LAMBDA(row, INDEX(row, XMATCH(TRUE, row<>"", 0, -1)))),
  HSTACK(profile_ids, last_non_empty)
)

说明:

  • LET函数封装变量,提升公式可读性和运行效率
  • XMATCH(TRUE, row<>"", 0, -1)从行的末尾往左查找第一个非空单元格的位置
  • BYROW遍历每一行数据,取出对应位置的非空值
  • HSTACK将profile_id列和结果列合并,生成最终的两列数据

注意事项

  • 两种方案均无需全量导入原始数据后再设置公式,仅需在「Report sheet」的首单元格输入公式即可自动生成所有行结果
  • 3万+行数据在Google Sheets处理范围内,只要原始表格格式规范,两种方案都能稳定运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:22:57