Excel. Собрать значения всех строк и столбцов таблицы в один столбец

Рис.1. Исходная таблица Excel

Исходные данные: Дана огромная таблица в Excel с большим количеством строк и столбцов.

Задача: собрать все значения всех колонок в один столбец.

Рис.1. Исходная таблица Excel
Рис.1. Исходная таблица Excel

 

Решение: для решения задачи потребуется помощь макросов. Ниже приведен код макроса для решения задачи.

 

Sub CopyFilledRows()
    On Error Resume Next
    r = 1
    With Sheets(2)
        For Each c In Intersect(Selection, ActiveSheet.UsedRange).Cells
            If c <> "" Then
                .Cells(r, 1) = c
                r = r + 1
            End If
        Next
    End With
End Sub

 

Для того, чтобы макрос сработал, выполните следующие шаги:

1. Добавть макрос в книгу (Разработчик – Visual Basic, в открывшемся редакторе вставьте код)

2. Выделите на листе диапазон данных, которые нужно собрать в один столбец;

3. Запустите макрос (Разработчик – Макросы – Выполнить)

 

Рис.2. Запуск макроса в Excel
Рис.2. Запуск макроса в Excel

На втором листе книги в первой колонке будет массив всех значений из выделенного фрагмента.

 

10 комментариев на «“Excel. Собрать значения всех строк и столбцов таблицы в один столбец”»

  1. Потрясена!!! Спасибо, очень вовремя.
    Прошу дополнить код, если это возможно.
    Надо, чтобы шапка столбца -дата- так же переносилась в новое место с сохранением очередности и формата «дата».

  2. Спасибо, очень пригодилось.
    Если можно попросить, то сделайте, пожалуйста, так, чтобы переносилась и дата с сохранением места и формата, у меня не получается никак.

  3. добрый день!
    Спасибо, что отозвались!
    не знаю как послать данные и скрин.
    А нужно так: есть 365 столбцов, в заголовке — дата, под ней в ячейках числа либо текст.
    Следует перенести заголовки и данные столбцов в новый сохраняя календарную последовательность.

  4. 1) Файл таблицы должен быть в формате .xlsm
    2) У меня не было кнопки «разработчик», чтобы появилась, нажать Файл — Параметры — Настроить ленту. Там справа в списке «Основные вкладки» поставить галку «Разработчик»
    3) Вставив код в Visual Basic, это окно можно закрыть, сохранять не надо.

  5. Добрый день!
    Макрос — просто супер!!!
    Подскажите пожалуйста, почему я смог его выполнить только на 2х листах, далее макрос не срабатывает ни на других листах, ни в новых в новых файлах итд
    перепробовал все способы, просто ничего не происходит.
    Заранее спасибо!!

    • Очень странно. Попробуйте закрыть все лишние файлы Excel, оставьте только рабочий файл. Уже тут откройте редактор макросов и вставьте в него код. Должно сработать.
      Если не поможет, можно обращаться к данным файла Excel, указывая имя файла. Это позволяет получать данные файла Excel в другом файле с макросом.

  6. Большое спасибо за макрос! Находка! В книге было несколько листов, таблица была наверное на третьем-четвертом, нажимал выполнить макрос, но ничего не происходило, а потом понял, что данные-то должны появиться на втором листе))) а не на следующем за таблицей

  7. Спасибо большое! На MacOS тоже все работает! Такая простая задача и excel не умеет по чайниковски это делать! Сэкономил часы своей жизни! Потрачу это время с умом!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *