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

如何将Google Sheets多行单元格拆分为独立行并关联分类?

Google表格拆分换行文本并关联分类列解决方案

方案1:使用新版函数(Google Sheets 2023及以上版本支持)

在转换表的空白单元格(比如A2)输入以下公式,会自动溢出所有结果,同时过滤空单元格:

=LET(
    data, Reference!A:D,
    mainCat, INDEX(data,,1),
    cat, INDEX(data,,2),
    subCat, INDEX(data,,3),
    textCol, INDEX(data,,4),
    splitText, TEXTSPLIT(textCol, CHAR(10),,TRUE),
    rowNums, SEQUENCE(ROWS(data)),
    repeatedRows, TOCOL(IF(splitText<>"", rowNums, ),3),
    HSTACK(
        INDEX(mainCat, repeatedRows),
        INDEX(cat, repeatedRows),
        INDEX(subCat, repeatedRows),
        TOCOL(splitText,3)
    )
)
  • 说明:TEXTSPLIT按换行符拆分每个单元格的文本,TOCOL自动过滤空值,通过重复原行号关联对应的分类列,最后用HSTACK合并所有列。如果你的列顺序不同,调整INDEX(data,,N)中的N值即可(比如Text列是E列就改成INDEX(data,,5))。

方案2:兼容旧版本函数

如果你的Google Sheets不支持TEXTSPLIT或TOCOL,用以下公式:

=ARRAYFORMULA(
    IFERROR(
        VLOOKUP(
            SEQUENCE(ROWS(Reference!A:A)*LEN(Reference!D:D)-LEN(SUBSTITUTE(Reference!D:D,CHAR(10),""))),
            {
                FLATTEN(IF(SPLIT(Reference!D:D,CHAR(10))<>"", ROW(Reference!A:A),)),
                FLATTEN(SPLIT(Reference!D:D,CHAR(10))),
                FLATTEN(IF(SPLIT(Reference!D:D,CHAR(10))<>"", Reference!A:A,)),
                FLATTEN(IF(SPLIT(Reference!D:D,CHAR(10))<>"", Reference!B:B,)),
                FLATTEN(IF(SPLIT(Reference!D:D,CHAR(10))<>"", Reference!C:C,))
            },
            {3,4,5,2},
            FALSE
        )
    )
)
  • 说明:用SPLIT拆分文本后,FLATTEN将所有内容展开为单列,同时重复对应的分类数据,最后通过VLOOKUP匹配行号输出完整结果,IFERROR过滤空行。注意调整Reference!D:D为你的Text列引用,A:A/B:B/C:C对应你的三个分类列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:13:10