Note: The other languages of the website are Google-translated. Back to English

Как быстро сложить несколько столбцов в один столбец в Excel?

в Excel функция «Текст в столбцы» может разбить ячейку на несколько столбцов на основе разделителя, но есть ли способы сложить несколько столбцов в один столбец, как показано ниже? В этой статье я расскажу о некоторых приемах быстрого решения этой задачи.
столбцы стека документов в один 1

Объедините несколько столбцов в один с помощью формулы

Объедините несколько столбцов в один с помощью VBA

Сложите несколько столбцов в один с помощью Transform Range хорошая идея3


Объедините несколько столбцов в один с помощью формулы

1. Выберите диапазон, который хотите сложить, и перейдите к Имя Box чтобы дать этому диапазону имя, и нажмите Enter ключ. Смотрите скриншот:
столбцы стека документов в один 2

2. Затем выберите пустую ячейку, в которую вы хотите поместить результаты, введите эту формулу =INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1), нажмите Enter и перетащите дескриптор заполнения вниз, пока не отобразится ошибка. Смотрите скриншот:
столбцы стека документов в один 3

В формуле MyData - это имя диапазона, которое вы указали на шаге 1.

Объедините несколько столбцов в один с помощью VBA

Вот код VBA, который тоже может вам помочь.

1. Нажмите Alt + F11 ключи для отображения Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модуливставьте ниже код в Модули.

VBA: стек столбцов в один

Sub ConvertRangeToColumn()
'UpdatebyExtendoffice
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
rowIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Rows
    Rng.Copy
    Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
    rowIndex = rowIndex + Rng.Columns.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

столбцы стека документов в один 4

3. Нажмите F5 нажмите клавишу для запуска кода, появится диалоговое окно для выбора исходных данных и нажмите OK, чтобы выбрать ячейку для размещения результатов. Смотрите скриншот:
столбцы стека документов в один 5

4. Нажмите OK. Теперь столбцы сложены в один столбец.
столбцы стека документов в один 6


Сложите несколько столбцов в один с помощью Transform Range

Применять Kutools for ExcelАвтора Диапазон преобразования Утилита также может помочь вам быстро решить эту проблему.

Kutools for Excel, с более чем 300 удобные функции, облегчающие вашу работу. 

После бесплатная установка Kutools for Excel, сделайте следующее:

1. Выберите данные столбцов, которые вы используете, и нажмите Кутулс > Диапазон > Диапазон преобразования. Смотрите скриншот:
столбцы стека документов в один 8

2. в Диапазон преобразования диалог, проверьте Диапазон до одного столбца и нажмите Ok, затем выберите ячейку для размещения результатов. Смотрите скриншот:
столбцы стека документов в один 9

3. Нажмите OK. Теперь столбцы уложены в один столбец.
столбцы стека документов в один 1


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (25)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
вы укладываете несколько строк в один столбец, а не несколько столбцов ... не то, что я искал.
Этот комментарий был сведен к минимуму модератором на сайте
Чтобы сложить столбцы AP, которые находятся в блоках по 6 строк, поместите эти формулы в ячейку R1 и заполните.

=OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1)
Этот комментарий был сведен к минимуму модератором на сайте
Это работает идеально, спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за публикацию этого решения! Если кому-то нужен пробел после/в конце каждого блока, просто добавьте дополнительный счетчик к строкам, поэтому, следуя приведенному выше примеру, вместо $A$6 напишите $A$7. Он вводит ноль «0» в строку, но вы можете легко «Использовать выбор для поиска» в Sublime, чтобы отредактировать их. Если вы знаете решение, которое не добавляет ноль, напишите!?
Этот комментарий был сведен к минимуму модератором на сайте
чтобы вывести пустую ячейку вместо 0, выполните функцию ЕСЛИ> 0, ИСТИНА -> выведите исходное содержимое ячейки, ЛОЖЬ -> выведите ""

=if(OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1)>0,OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1),"")
Этот комментарий был сведен к минимуму модератором на сайте
Данг, теперь это не работает! Пробовал на новой вкладке, но теперь он вернулся к укладке содержимого столбца в один вместо исходного содержимого строки.
Этот комментарий был сведен к минимуму модератором на сайте
Отмените последний, пропустил шаг усечения.
Этот комментарий был сведен к минимуму модератором на сайте
Я знаю, что вы ответили на этот вопрос очень давно, но не могли бы вы объяснить, что именно делает каждая часть этой функции?
Этот комментарий был сведен к минимуму модератором на сайте
Возможно, этот учебник может вам помочь. https://www.extendoffice.com/documents/excel/3327-excel-convert-multiple-rows-to-columns.html
Этот комментарий был сведен к минимуму модератором на сайте
это просто кликбейт, чтобы вы скачали платное ПО
Этот комментарий был сведен к минимуму модератором на сайте
Первая загрузка будет бесплатной через 60 дней, после чего вы сможете решить, платить за использование или нет.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, есть ли возможность преобразовать вышеуказанные данные в следующую форму??
1
A
Лилли
2
B
Джуди
...
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за оставленное сообщение, этот учебник https://www.extendoffice.com/documents/excel/5401-excel-stack-columns-into-one-column.html
говорит о том, как решить эту проблему, вы можете перейти к просмотру.
Этот комментарий был сведен к минимуму модератором на сайте
У меня есть данные, которые заканчиваются в одной строке, но в нескольких столбцах, в которых я хочу, чтобы они были сложены в последовательности, где данные столбца B будут идти под данными столбца A, где данные заканчиваются для данных столбца A и столбца C для данных столбца A где заканчиваются данные из столбца B и так далее. Таким образом, у меня будут данные из нескольких столбцов, чтобы поместиться в один столбец. Как я могу это сделать?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, есть ли способ заставить формулу игнорировать любые пустые ячейки, которые могут содержать ваши данные?


=INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1),


Я использую вспомогательный лист для создания непрерывного списка для раскрывающегося списка проверки данных. Заранее спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Извините, я не разбираюсь в формулах, возможно, вы можете попробовать использовать Kutools for ExcelВыбор непустых ячеек утилита, чтобы сначала выбрать непустые ячейки, а затем скопировать и вставить их в другое место, а затем использовать вышеуказанные методы.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, я хочу сделать еще один шаг в этом. Я использовал Stack Multiple Columns Into One с кодом VBA, и это работает. Я использовал Таблицы в качестве источника с этим кодом и получил список. Есть ли способ автоматизировать запуск макроса? Так что, когда я добавляю новую запись в таблицу, макрос автоматически запускается и обновляет полученный список?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Крис Блэкберн, извините, я боюсь, что не могу найти код, который может автоматически запускаться для обновления результата, может быть, кто-то еще может.
Этот комментарий был сведен к минимуму модератором на сайте
Я пытаюсь сделать это для очень большой таблицы (сотни столбцов и строк, которые все связаны с формулами. Мой Excel будет продолжать загружаться, а затем в конечном итоге перестанет отвечать. Есть ли способ обойти это? Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Том, какой метод вы применяете, не работает? Третий метод, инструмент преобразования диапазона, должен работать.
Этот комментарий был сведен к минимуму модератором на сайте
Я использую метод «Объединить несколько столбцов в один с формулой», и он отлично работает, но я хочу, чтобы он сохранял форматирование, т.е. некоторые столбцы были выделены жирным шрифтом, а 1 был гиперссылкой. Можно ли что-то добавить в формулу, чтобы это произошло?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Сьюзен Милард, их формула может удовлетворить ваши потребности, вы можете использовать VBA или инструмент Transpose Range, оба они могут удовлетворить вас.
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо, вариант формулы сработал очень хорошо ... вы сэкономили мне много времени.
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за формулу и VBA, но ни один из них не делает того, о чем говорится в заголовке сообщения. Я ожидал, что они будут складывать столбцы, но вместо этого они транспонируют каждую строку в столбец и складывают их... так что это складывание транспонированных строк, а не столбцов. Все еще очень полезно в некоторых случаях, но кто-нибудь знает, как изменить формулу и/или VBA, чтобы фактически сложить столбцы? Я полагаю, я мог бы транспонировать весь входной диапазон, а затем использовать эти...
Этот комментарий был сведен к минимуму модератором на сайте
Для тех, кто хочет объединить столбцы в один, а не строки в один, вам нужно иметь четкое представление о том, что вы действительно хотите сделать. Предположим, у вас есть массив 3x3, и вы хотите, чтобы ваша функция index() получала записи в виде (строка, столбец) для (1,1), (2,1), (3,1), затем (1,2), (2,2), (3,2), затем так далее. Итак, что вы хотите нужно сделать так, чтобы index() ссылался на один столбец, содержащий все номера строк (1;2;3;1;2;3;1;2;3), и на один столбец, содержащий все номера столбцов (1;1 ;1;2;2;2;3;3;3). Чтобы получить (1;2;3;1;2;3;1;2;3), общий подход к программированию заключается в использовании 1+mod(some_counter -1,3), где функция mod() дает остатки 0,1,2,0,1,2,...
Чтобы получить (1;1;1;2;2;2;3;3;3), используется 1+int((some_counter-1)/3), где это дает 1+0, 1+0, 1+0 , 1+1, 1+1, 1+1, 1+2, 1+2, 1+2
Поэтому, чтобы получить массив 3x3, объединенный в один, вы используете формулу (нажмите Ctrl + Shft + Enter):=index($A$1:$C$3, 1+mod(row(A1)-1,3), 1 +int((строка(A1)-1)/3)))где строка(A1) служит счетчиком при заполнении формулы вниз
Если вы поставите это наоборот (строка в столбцы, столбцы в строку), вы получите строки, сложенные в один столбец = ИНДЕКС( $A$1:$C$3, 1+INT((СТРОКА(A1)-1)/ 3),1+MOD(ROW(A1)-1,3)) что и делает формула в этой статье

В двух словах, формула, используемая для объединения столбцов в массиве в один столбец, будет следующей: )/ количество_столбцов_вашего_массива)))
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL