Regex 如何在Google工作表中将多个列动态压缩为一个列

Regex 如何在Google工作表中将多个列动态压缩为一个列,regex,google-sheets,google-sheets-formula,array-formulas,google-sheets-query,Regex,Google Sheets,Google Sheets Formula,Array Formulas,Google Sheets Query,我有中间有空白单元格的数据,我正在寻找一种方法将它们压缩到一列中 因为行的数量可以改变,列的数量也可以改变,所以我正在寻找一种动态的方法来实现这一点。我已经用下面的公式以一种非动态的方式做到了这一点,但我真的对一种动态的方式感兴趣 =IFS(COUNTA($B2:2)=1, TEXTJOIN("",true, $B2:2), COUNTA($B2:2)>1, "AMBIGUOUS") 尝试: 谢谢!这确实起到了作用。我一直在试图找出它是如何工作的,以适应我的需要,但我正在努力。你介意详

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

因为行的数量可以改变,列的数量也可以改变,所以我正在寻找一种动态的方法来实现这一点。我已经用下面的公式以一种非动态的方式做到了这一点,但我真的对一种动态的方式感兴趣

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


谢谢!这确实起到了作用。我一直在试图找出它是如何工作的,以适应我的需要,但我正在努力。你介意详细说明一下它是如何工作的吗?当然,基本上它通过
TRANSPOSE(查询(TRANSPOSE(),999^99)将B列中的所有列集中到一列中
这会在列之间添加空格,因此在第6行上,连接的值将是
tag2 tag3
,因此我们尝试检测此空格,如果存在,则输出
不明确
。如果空格不存在,则表示该行上只有一个值,以便输出值
=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))), "♦", " ")))