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

Google Sheets中适配ARRAYFORMULA的TEXTJOIN改良及空格保留问题

修复Google Sheets中适配ARRAYFORMULA的TEXTJOIN改良公式(保留单元格内空格)

问题背景

需要实现可与ARRAYFORMULA协同使用、自动忽略空单元格的TEXTJOIN替代功能,但当前使用的公式会错误消除单元格内单词间的空格(如将“blue white”转为“bluewhite”),希望调整现有公式,在保留原有功能的同时修复该问题。

现有公式(存在空格丢失问题)

=ARRAYFORMULA(IFERROR( 
    REGEXREPLACE(
            REGEXREPLACE(
                REGEXREPLACE(
                    SUBSTITUTE(
                        flatten(query(transpose(A3:F)&", ",,columns(A3:F))),
                        " ",
                        ""
                    ),
                    "\s|,",
                    "😂"
                ),
                "^😂+|😂+$",
                ""
            ),
            "\b😂{1,}\b",
            ", "
        )
    ))

替代方案(MAP版)

该方案需手动指定每一列,适配不同列数时修改成本高:

MAP(A3:A,B3:B,LAMBDA(a,b,TEXTJOIN(" ",TRUE,{a,b})) )

示例表格对比

A1B1C1D1E1预期text join结果当前公式输出结果期望输出结果
redwhiteblue whitered whitered, white, blue white, red whitered, white, bluewhite, redwhite, red, white, bluewhite, redwhitered, white, blue white, red white, red, white, blue white, red white
greenyellowgreen, yellowgreen, yellow, green, yellowgreen, yellow, green, yellow
whitewhitewhite, whitewhite, white, white, whitewhite, white, white, white
whitewhitewhite, whitewhite, white

优化后的公式

=ARRAYFORMULA(IFERROR(
    REGEXREPLACE(
        REGEXREPLACE(
            REGEXREPLACE(
                FLATTEN(QUERY(TRANSPOSE(IF(A3:F="",,A3:F&", ")),,COLUMNS(A3:F))),
                ",\s*$", ""
            ),
            ",\s*(?=,)", ""
        ),
        ",\s*", ", "
    )
))

优化说明

  1. 移除原公式中SUBSTITUTE(..., " ", "")步骤——正是这一步导致单元格内的空格被全部删除
  2. 改用IF(A3:F="",,A3:F&", ")处理空单元格:仅为非空单元格添加后缀, ,避免空单元格引入多余分隔符
  3. 通过三层REGEXREPLACE依次处理:
    • 移除每行末尾多余的,
    • 清除连续的, (空单元格残留的无效分隔符)
    • 统一将分隔符规范为,

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:40:20