Есть ли функция Google Таблиц для сжатия диапазона в один столбец? - PullRequest
1 голос
/ 06 августа 2020

Я хотел найти для этого встроенную функцию, но безрезультатно, поэтому мне пришлось написать ее в скрипте:

function squeeze(range) {
  return [].concat(...range).filter(n => n)
}

Эта JS функция сглаживает 2D-массив range и возвращает его .

Обратите внимание на , что он отфильтровывает пустые ячейки с неровными столбцами.

Ответы [ 3 ]

2 голосов
/ 06 августа 2020

если FLATTEN будет удален каким-то злым чуваком из Google, вы можете сделать:

=TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(A1:C3),,9^9)),,9^9), " "))

введите описание изображения здесь

E1:   =FLATTEN(A1:C3)
2 голосов
/ 06 августа 2020

Хотя это официально не задокументировано (пока), flatten () также существует как встроенная формула. См. здесь для получения дополнительной информации .

пример

0 голосов
/ 07 августа 2020

Благодаря JPV и на основе его ответа я добавил FILTER, чтобы исключить пустые ячейки:

=FILTER(FLATTEN(B2:L7), FLATTEN(B2:L7)<>"")

Плюс TRANSPOSE, я не указывал это, но мне нужно несколько столбцы в один, а не несколько строк в 1 столбец.

=FILTER(FLATTEN(TRANSPOSE(B2:L7)), FLATTEN(TRANSPOSE(B2:L7))<>"")
...