#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