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

如何将Google Sheet中的指定表格转换为1NF规范化表格?

将Google Sheets表格转换为符合第一范式(1NF)的格式

原始表格

ProcessTool ATool B
Process 1Tool 1Tool 2
Process 2Tool 1
Process 3Tool 2Tool 3

目标1NF表格

ProcessTool ATool B
Process 1Tool 1
Process 1Tool 2
Process 2Tool 1
Process 3Tool 2
Process 3Tool 3

实现方法

方法1:使用QUERY + FLATTEN组合函数

假设原始数据位于单元格区域A1:C4(表头在A1:C1,数据行A2:C4),在空白单元格(例如E1)输入以下公式:

=QUERY(FLATTEN(A2:A4&"|"&B2:C4), "SELECT SPLIT(Col1, '|')[0], SPLIT(Col1, '|')[1], '' WHERE SPLIT(Col1, '|')[1] <> '' LABEL SPLIT(Col1, '|')[0] 'Process', SPLIT(Col1, '|')[1] 'Tool A', '' 'Tool B'")
  • 逻辑说明:
    1. FLATTEN(A2:A4&"|"&B2:C4) 将每个Process与对应的Tool A、Tool B拼接为Process|Tool格式的字符串,再扁平化所有行,生成所有可能的Process-Tool组合。
    2. QUERY 筛选掉Tool为空的记录,拆分字符串还原Process和Tool字段,同时保留空白的Tool B列并设置表头。

方法2:使用ARRAYFORMULA合并多组数据

通过合并两组数据(Process+Tool A、Process+Tool B),再过滤空值:

=ARRAYFORMULA(QUERY({
  A2:A4, B2:B4, IFERROR(B2:B4/0, "") ;
  A2:A4, C2:C4, IFERROR(C2:C4/0, "")
}, "WHERE Col2 <> '' ORDER BY Col1"))
  • 逻辑说明:
    1. 构造两个子数组:第一组为Process+Tool A+空白Tool B,第二组为Process+Tool B+空白Tool B。
    2. 用ARRAYFORMULA合并数组,再通过QUERY过滤掉Tool为空的行,并按Process排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:28:24