如何在整个范围的每一行中创建一列 last/right-most 非空值
How to create a column of the last/right-most non-empty values in every row from a whole range
假设我有这个传播sheet,我要创建的列是列E
。
A B C D E
z z z
x x z z
y y
y x x
我将如何在 google sheet 秒内解决这个问题?我已经看到一些关于组合 INDEX 和 MATCH 的类似问题的答案,但我无法弄清楚。
还需要处理超过 10 万行的 sheet,所以我不能直接拖动它。
请尝试以下公式:
=ArrayFormula(REGEXREPLACE(ARRAYFORMULA(TRANSPOSE(TRIM(SPLIT(
CONCATENATE(IF(LEN(B3:F9),"★"&B3:F9,)&REPT(" "&"♣︎",COLUMN(B3:F3)=COLUMN(F3))),"♣︎")))),".*★(.+)$",""))
除了marikamitsos贴出的解决方案,你也可以试试
=ArrayFormula(substitute(regexextract(trim(transpose(query(transpose(substitute(B3:E," ", "_")),,9^99))), "[^\s]*$"), "_", " "))
假设我有这个传播sheet,我要创建的列是列E
。
A B C D E
z z z
x x z z
y y
y x x
我将如何在 google sheet 秒内解决这个问题?我已经看到一些关于组合 INDEX 和 MATCH 的类似问题的答案,但我无法弄清楚。
还需要处理超过 10 万行的 sheet,所以我不能直接拖动它。
请尝试以下公式:
=ArrayFormula(REGEXREPLACE(ARRAYFORMULA(TRANSPOSE(TRIM(SPLIT(
CONCATENATE(IF(LEN(B3:F9),"★"&B3:F9,)&REPT(" "&"♣︎",COLUMN(B3:F3)=COLUMN(F3))),"♣︎")))),".*★(.+)$",""))
除了marikamitsos贴出的解决方案,你也可以试试
=ArrayFormula(substitute(regexextract(trim(transpose(query(transpose(substitute(B3:E," ", "_")),,9^99))), "[^\s]*$"), "_", " "))