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

Google Sheets数据整理公式优化:保留产品编码并清理无效数据

Google Sheets 数据整理:关联产品编码与有效项目

核心思路

先把产品编码向下填充到其下属的所有项目行,再过滤掉项目名为-或空值的无效行,最终实现每个有效项目都对应所属产品编码。

新版Sheets公式(推荐)

=QUERY(ARRAYFORMULA({SCAN("", Dummy!B2:B, LAMBDA(acc, curr, IF(curr<>"", curr, acc))), TRIM(Dummy!C2:C)}), "SELECT * WHERE Col2 <> '-' AND Col2 <> ''", 0)

公式拆解:

  • SCAN("", Dummy!B2:B, LAMBDA(acc, curr, IF(curr<>"", curr, acc))):遍历产品编码列(B列),遇到非空编码就保留,空行则继承上一行的编码,完成编码向下填充。
  • ARRAYFORMULA({...}):将填充后的编码列和清理后的项目名列合并为二维数组。
  • QUERY(...):过滤掉项目名为-或空的行,仅保留有效项目数据。

旧版Sheets兼容公式

如果你的Sheets版本不支持SCAN函数,可使用以下公式:

=QUERY(ARRAYFORMULA({VLOOKUP(ROW(Dummy!B2:B), FILTER({ROW(Dummy!B2:B), Dummy!B2:B}, Dummy!B2:B<>""), 2, TRUE), TRIM(Dummy!C2:C)}), "SELECT * WHERE Col2 <> '-' AND Col2 <> ''", 0)

公式拆解:

  • FILTER({ROW(Dummy!B2:B), Dummy!B2:B}, Dummy!B2:B<>""):提取所有含有效产品编码的行及其行号。
  • VLOOKUP(ROW(Dummy!B2:B), ..., 2, TRUE):用当前行号匹配编码行的行号区间,返回对应产品编码,实现向下填充。

注意事项

  • 将公式中的Dummy替换为你的实际工作表名称。
  • 确保产品编码行的B列(产品编码列)为非空值,C列(项目名称列)为-,该逻辑才能正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:43:14