【问题标题】:Horizontally Concatenate Array of Columns with delimiter and ignore blank columns in google sheets使用分隔符水平连接列数组并忽略谷歌表格中的空白列
【发布时间】:2022-08-15 23:40:49
【问题描述】:

共享的sheet 显示多个列行,这些行可以单独水平连接,使用TEXTJOIN(\", \", TRUE, A2:D2) 和空格之间的逗号和空格将被忽略。但据我所知,textjoin 不能在 Arrayformula 中使用,我想找到一个合适的替代品,它也可以与其他信息字符串组合成一个字符串。

我希望能够将其用作可能添加到其他信息字符串的独立公式字符串。例如,\"Favorite colors: \"& textjoin(\", \",1,A2:D2)&\"Favorite foods:\"&textjoin(\", \",1,E2:G2)&\"...

可能的解决方案

可能是以下之一的变体:

  1. 修改它以便可以使用数组公式JOIN(\"~\", SPLIT(JOIN(CHAR(60000), B3:E3), CHAR(60000)))
  2. 修改此公式也适用于连接 JOIN(\", \",FILTER(H2:H,H2:H<>\"\"))
  3. 使用IF(a2:A<>\"\" 的组合以及最后的正则表达式替换(请参阅下面的答案),但如果有很多列,与 textjoin 相比,这可能是一个非常长的公式)

    一个理想的解决方案应该是简洁的,并且看起来最接近这个:

    arrayformula(TEXTJOIN(\", \", TRUE, A2:A,B2:B,C2:C)
    

    共享表是here

    标签: google-sheets google-sheets-formula


    【解决方案1】:

    使用一系列 IF 语句,添加分隔符然后删除任何尾随分隔符可以使用以下方法完成:Arrayformula(regexreplace(if(A2:A100<>"",A2:A100&", ","")&if(B2:B100 <>"",B2:B100&", ","")&if(C2:C100<>"",C2:C100&", ","")&if(D2:D100<>"",D2:D100&", ",""),", $",""))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多