Как динамически сжать несколько столбцов в один в Google Таблицах

У меня есть данные с пустыми ячейками между ними, и я ищу способ сжать их в один столбец.

Ожидаемый результат от данных справа

Поскольку количество строк может меняться и количество столбцов тоже может меняться, я ищу динамический способ сделать это. Мне уже удалось сделать это нединамическим способом, используя следующую формулу, но меня действительно интересует динамический способ.

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



Ответы (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))), "♦", " ")))

0

person player0    schedule 15.12.2019
comment
Спасибо! Это действительно работает. Я пытался понять, как это работает, чтобы приспособить его к моим потребностям, но я борюсь. Не могли бы вы подробнее рассказать, как это работает? - person mz1000; 30.12.2019
comment
конечно, в основном он концентрирует все столбцы из столбца B в один столбец через TRANSPOSE(QUERY(TRANSPOSE( ),,999^99), это добавляет пустое пространство между столбцами, поэтому в 6-й строке объединенное значение будет tag2 tag3, поэтому мы пытаемся обнаружить это пустое пространство и, если оно есть, вывести ambiguous. если пробел отсутствует, означает, что в этой строке есть только одно значение, поэтому значение выводится - person player0; 30.12.2019