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

Як швидко скласти кілька стовпців в один стовпець у Excel?

в Excel функція "Текст до стовпців" може розділити комірку на кілька стовпців на основі роздільника, але якщо є якісь способи складання декількох стовпців в один стовпець, як показано на знімку екрана нижче? У цій статті я представив кілька прийомів щодо швидкого вирішення цього завдання.
doc стек стовпців до одного 1

Складіть кілька стовпців в один за допомогою формули

Складайте кілька стовпців в один за допомогою VBA

Складіть кілька стовпців в один за допомогою Transform Range гарна ідея3


Складіть кілька стовпців в один за допомогою формули

1. Виберіть діапазон, який потрібно скласти, і перейдіть до Ім'я Box щоб дати цьому діапазону назву, та натисніть вводити ключ. Дивіться знімок екрана:
doc стек стовпців до одного 2

2. Потім виберіть порожню клітинку, куди потрібно розмістити результати, введіть цю формулу =INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1), натисніть Enteклавішу r та перетягніть маркер заповнення вниз, доки не з'явиться помилка. Дивіться знімок екрана:
doc стек стовпців до одного 3

У формулі MyData - це назва діапазону, яку ви вказали на кроці 1.

Складайте кілька стовпців в один за допомогою VBA

Ось код VBA, який також може вам допомогти.

1. прес Alt + F11 клавіші для відображення Microsoft Visual Basic для додатків вікна.

2. клацання Insert > Модулі, вставте код нижче в Модулі.

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

doc стек стовпців до одного 4

3. прес F5 для запуску коду, вискакує діалогове вікно для вибору вихідних даних і натисніть OK, щоб вибрати клітинку для розміщення результатів. Дивіться знімок екрана:
doc стек стовпців до одного 5

4. клацання OK. Тепер стовпці складені в одну колонку.
doc стек стовпців до одного 6


Складіть кілька стовпців в один за допомогою Transform Range

Застосовувати Kutools для ExcelАвтора Діапазон трансформації Утиліта також може допомогти вам швидко вирішити цю проблему.

Kutools для Excel, з більш ніж 300 зручні функції, полегшує вам роботу. 

після безкоштовна установка Kutools для Excel, будь-ласка, виконайте наведені нижче дії:

1. Виберіть дані стовпців, якими ви користуєтесь, і натисніть Кутулс > Діапазон > Діапазон трансформації. Дивіться знімок екрана:
doc стек стовпців до одного 8

2 В Діапазон трансформації діалогове вікно, перевірте Діапазон до однієї колонки і натисніть Ok, потім виберіть комірку для розміщення результатів. Дивіться знімок екрана:
doc стек стовпців до одного 9

3. клацання OK. Тепер стовпці складені в одну колонку.
doc стек стовпців до одного 1


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 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, виконайте функцію IF>0, TRUE-->виведіть вихідний вміст клітинки, FALSE-->виведіть ""

=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, щоб спочатку виділити порожні клітинки, а потім скопіювати та вставити їх в інше місце, а потім використати вищенаведені методи.
Цей коментар був мінімізований модератором на сайті
Привіт, я хочу зробити крок далі. Я використовував стек кількох стовпців в один з VBA, кодом, і це працює. Я використовував таблиці як джерело з цим кодом, і я отримую список. Чи є спосіб автоматизувати запуск макросу? Тож, коли я додаю новий запис у таблицю, макрос автоматично запускається й оновлює отриманий список?
Цей коментар був мінімізований модератором на сайті
Привіт, Кріс Блекберн, вибачте, боюся, я не можу знайти код, який може автоматично запуститися для оновлення результату, можливо, хтось інший зможе.
Цей коментар був мінімізований модератором на сайті
Я намагаюся зробити це з дуже великою таблицею (100 стовпців і рядків, які всі пов’язані з формулами. Мій excel буде продовжувати завантажуватися, а потім, зрештою, не відповідає. Чи є спосіб подолати це? Дякую
Цей коментар був мінімізований модератором на сайті
Привіт, Томе, який метод ти застосовуєш не працює? Третій метод, інструмент перетворення діапазону повинен працювати.
Цей коментар був мінімізований модератором на сайті
Я використовую метод Stack Multiple Columns Into One With Formula, і він працював ідеально, але я хочу, щоб він підтримував форматування, тобто деякі стовпці були виділені жирним шрифтом, а 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) служить лічильником, коли ви заповнюєте формулу вниз
Якщо ви поставите це навпаки (рядок до стовпців, стовпець до рядка), ви отримаєте рядки, складені в один стовпець=INDEX( $A$1:$C$3, 1+INT((ROW(A1)-1)/ 3),1+MOD(ROW(A1)-1,3)), що, по суті, і робить формула в цій статті

Коротше кажучи, формула, яка використовується для поєднання стовпців масиву в один стовпець, буде виглядати так:=index( your_array_cells , 1+mod(row(A1)-1, number_of_rows_of_your_array ), 1+int((рядок(A1)-1) )/ кількість_стовпців_вашого_масиву)))
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця