【问题标题】:How to create a column of the last/right-most non-empty values in every row from a whole range如何在整个范围内的每一行中创建最后一个/最右边的非空值的列
【发布时间】:2021-02-01 18:52:06
【问题描述】:

假设我有这个电子表格,其中我要创建的列是列E

A B C D E
z   z   z
x x   z z
y       y
y x     x

我将如何在谷歌表格中处理这个问题?我已经看到一些关于组合 INDEX 和 MATCH 的类似问题的答案,但我无法弄清楚。

还需要处理超过 100k 行的工作表,所以我不能只拖动它。

【问题讨论】:

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


    【解决方案1】:

    请尝试以下公式:

    =ArrayFormula(REGEXREPLACE(ARRAYFORMULA(TRANSPOSE(TRIM(SPLIT( 
       CONCATENATE(IF(LEN(B3:F9),"★"&B3:F9,)&REPT(" "&"♣︎",COLUMN(B3:F3)=COLUMN(F3))),"♣︎")))),".*★(.+)$","$1"))
    

    【讨论】:

    • 很高兴我能帮上忙。
    【解决方案2】:

    除了marikamitsos发布的解决方案,你也可以试试

    =ArrayFormula(substitute(regexextract(trim(transpose(query(transpose(substitute(B3:E," ", "_")),,9^99))), "[^\s]*$"), "_", " "))
    

    【讨论】:

    • 这不太完全工作,因为cccc dddd eeee 在一个单元格中返回eeee 而不是整个单元格值。
    • @RafaGuillermo:我更新了我的答案。请再次检查。
    • 哇,我真的永远不会想到这一点。谢谢。
    猜你喜欢
    • 2014-11-10
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2022-01-03
    相关资源
    最近更新 更多