Как собрать массив со значениями в один столбец

#arrays #excel #google-sheets #excel-formula

Вопрос:

В Excel у меня есть два столбца (A и B), заполненные текстовыми значениями, и я хочу получить все значения из двух столбцов в один столбец (C), и он должен быть динамическим

пример:

 Column A: {car, plane, boat}
Column B: {bike, motor}
Column C: {car, plane, boat, bike, motor}
 

Я надеюсь, что кто — нибудь сможет мне помочь!

Комментарии:

1. Excel-это не Google Таблицы. Какой из двух вы на самом деле используете?

2. И если преуспеют. Какая версия?

Ответ №1:

использовать:

 =QUERY(FLATTEN(A:C); "where Col1 is not null")
 

Комментарии:

1. работает ли это в excel?

2. @milan1610 офк нет. это для Google листов, как вы отметили свой вопрос

Ответ №2:

Это будет работать как в Excel(любой версии), так и в Google Таблицах: поместите это в C1 и копируйте до тех пор, пока не будет заполнено достаточно ячеек, чтобы захватить максимальные длины обоих списков:

 =INDEX(A:B,IF(ROW($ZZ1)>COUNTA(A:A),ROW($ZZ1)-COUNTA(A:A),ROW($ZZ1)),IF(ROW($ZZ1)>COUNTA(A:A),2,1))amp;""
 

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

С помощью Office 365 Excel:

 =LET(
    rng1st,A:A,
    rng2nd,B:B,
    cnt1st,COUNTA(rng1st),
    cnt2nd,COUNTA(rng2nd),
    sq,SEQUENCE(cnt1st cnt2nd),
    INDEX(CHOOSE({1,2},rng1st,rng2nd),IF(sq>cnt1st,sq-cnt1st,sq),IF(sq>cnt1st,2,1)))
 

Поместите это в C1, и результаты будут отображаться автоматически:

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

Комментарии:

1. Это работает нормально, но выдает ошибку (#REF) в столбце C в ячейках, в которых была пустая ячейка в одном из двух столбцов (A и B). Поэтому, если столбец A имеет значения до строки 60, а B заполняет строки до 100, он показывает #REF из строки 61 в столбце C

Ответ №3:

В Google Таблицах есть функция ВЫРАВНИВАНИЯ, которая позволяет вам это делать, но в Excel нет эквивалентной функции.

Однако есть обходной путь, который объединяет 2 столбца в порядке их строк:

Это работает в Excel версии 2019 или более поздней

 =FILTERXML("<a><b>"amp;TEXTJOIN("</b><b>",TRUE,A:B)amp;"</b></a>","//b")
 

Комментарии:

1. Одно замечание об этом методе: TEXTJOIN имеет ограничение в 255 символов. Если количество символов, включая повторное использование </b><b> , превышает 255, произойдет ошибка.

2. работает ли это в excel?

3. @milan1610 это будет для любой версии, превышающей 2019 год, и office 365 Excel.

4. Хороший подход для объединения 2 столбцов.

Ответ №4:

=IF(SEQUENCE(ROWS(range1) ROWS(range2))<ROWS(range1) 1,range1,INDEX(range2,MOD(SEQUENCE(ROWS(range1) ROWS(range2),,ROWS(range2)-ROWS(range1)),ROWS(range2)) 1,SEQUENCE(1,COLUMNS(range2)))) Это будет укладывать диапазон 2 в диапазон 1 в Excel (365). Это также работает для диапазонов с 2 столбцами или более

Ответ №5:

Если количество строк не будет изменено

=ОШИБКА(ИНДЕКС($A$1:$A$3, СТРОКИ(C1:$C$1)), ОШИБКА(ИНДЕКС($B$1:$B$2, СТРОКИ(C1:$C$1)-СТРОКИ($A$1:$A$3)), «»))

ctrl shift enter

Если количество строк может быть изменено

=Функция iferror(индекс(косвенные(«$а$1:$а$»amp;СЧЕТЕСЛИ(а:а,»«)), строки(С1:$С$1)), функция iferror(индекс(косвенные («в$B$1:$Б$»amp;СЧЕТЕСЛИ(Б:Б,»«)), строки(С1:$С$1)-строки(косвенные(«$а$1:$а$»amp;СЧЕТЕСЛИ(а:А,»*»)))), «»))

ctrl shift enter