Укладывать несколько столбцов в один? - PullRequest
41 голосов
/ 25 февраля 2012

Я использую Google SpreadSheet и пытаюсь, чтобы несколько листов связывались со списком слов. На последнем листе я хотел бы создать итоговый список, который представляет собой комбинацию всех значений в столбце. Я получил сортировку, работающую с использованием = CONCATENATE (), но она превратилась в строку. Есть ли способ сохранить его в виде списка столбцов?

Вот пример в виде столбцов:

Лист1

  • яблоко
  • оранжевый
  • банан

Лист2

  • ананас
  • клубника
  • персик

FinalSheet

  • яблоко
  • оранжевый
  • банан
  • ананас
  • клубника
  • персик

Ответы [ 6 ]

69 голосов
/ 04 января 2013

Обновленный ответ

Я был тут - это гораздо лучшее решение. Это было размещено ниже, но я копирую это здесь, так что это в верхнем ответе:

=unique({A:A;B:B})

Предупреждение: это будет включать одну пустую ячейку в определенных сценариях (например, если она есть в конце первого списка).

Если вас не интересует порядок и пустая ячейка, простая sort() очистит все:

=sort(unique({A:A;B:B}))

В противном случае filter() может удалить пробелы следующим образом:

=filter(unique({A:A;B:B}),NOT(ISBLANK(unique({A:A;B:B}))))

Ниже приведен старый устарел ответ

Я уверен, что это «Неправильный способ сделать это», так как это кажется настолько нелепо простой и распространенной задачей, что я чувствую, что должен что-то упустить, так как это не требует такого чрезмерного решения.

Но это работает:

=UNIQUE(TRANSPOSE(SPLIT(JOIN(";",A:A,B:B),";")))

Если ваши данные содержат символы ';' символы, которые вам, естественно, понадобятся для изменения разделителя.

9 голосов
/ 18 мая 2016

Основной способ, это просто сделать это как массивы, подобные таковым

={A1:A10;B1:B10...etc}

Проблема с этим методом, как я выяснил, заключается в том, что он очень трудоемкий, если у вас много столбцов.Я провел несколько поисков и наткнулся на эту статью:

Объединение нескольких столбцов в один отсортированный столбец в таблицах Google

Основная формула

=transpose(split(arrayformula(concatenate(if(len(A:Z)>0,A:Z&";",""))),";"))

Очевидно, вы замените A: Z на любой диапазон, который вы хотите использовать.И если вы хотите выполнить некоторую сортировку или удаление дубликатов, вам просто нужно обернуть приведенную выше формулу в метод SORT() и / или UNIQUE(), например, так:,Удачного кодирования всем :)

7 голосов
/ 04 мая 2015

Вы можете использовать это:

=unique({A1:A;B1:B})

Прекрасно работает здесь!

5 голосов
/ 24 июня 2015

Функция unique() избавляет от пробелов, но мне это не помогло, потому что некоторые из моих строк повторяются. Вместо этого я сначала фильтрую столбцы по len(), чтобы удалить пустые ячейки. Затем я объединяю столбцы одинаково.

={filter(A:A, len(A:A)); filter(B:B, len(B:B))}

5 голосов
/ 11 февраля 2015

Гораздо проще:

={sheetone!A2:A;sheettwo!A2:A}
0 голосов
/ 25 февраля 2012

Попробуйте использовать аргумент CONCATENATE с

=ArrayFormula(EXPAND(...))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...