【问题标题】:How to dynamically squeeze multiple columns to one in Google Sheets如何在 Google 表格中动态地将多列压缩为一列
【发布时间】:2019-12-15 20:51:37
【问题描述】:

我的数据之间有空白单元格,我正在寻找一种方法将它们压缩到一列中。

由于行数可以改变,列数也可以改变,我正在寻找一种动态的方法。我已经设法使用以下公式以非动态方式做到这一点,但我对动态方式非常感兴趣。

=IFS(COUNTA($B2:2)=1, TEXTJOIN("",true, $B2:2), COUNTA($B2:2)>1, "AMBIGUOUS")

【问题讨论】:

    标签: regex google-sheets google-sheets-formula array-formulas google-sheets-query


    【解决方案1】:

    尝试:

    =ARRAYFORMULA(IF(REGEXMATCH(TO_TEXT(TRIM(TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(
     INDIRECT("B2:"&ROWS(B:B)), " ", "♦")),,999^99)))), " "), "ambiguous", 
     SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(
     INDIRECT("B2:"&ROWS(B:B)), " ", "♦")),,999^99))), "♦", " ")))
    

    【讨论】:

    • 谢谢!这确实起到了作用。我一直在试图弄清楚它是如何适应我的需求的,但我很挣扎。您介意详细说明这是如何工作的吗?
    • 当然,基本上它通过 TRANSPOSE(QUERY(TRANSPOSE( ),,999^99) 将 B 列中的所有列集中到一列中,这会在列之间添加空白空间,因此第 6 行的连接值将是 tag2 tag3 所以我们尝试检测这个空空间,如果存在则输出ambiguous。如果空间不存在意味着该行上只有一个值,以便输出该值
    猜你喜欢
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 2020-11-21
    • 1970-01-01
    相关资源
    最近更新 更多