Перенос данных по условию в Excel: инструкция

Перенос данных по условию в Excel: инструкция Excel
Пошаговое руководство, как автоматически перенести строки на другой лист в Excel по условию с помощью формул и макросов VBA.

Перенос данных на другой лист по условию — базовая задача для автоматизации отчетов в Excel. Вместо ручного копирования строк с помощью Ctrl + C и Ctrl + V, можно настроить динамический перенос, который будет обновляться сам при изменении исходной таблицы.

Видеоинструкция

Способ 1. Динамический перенос функцией ФИЛЬТР (для Excel 365 и 2021)

Самый простой и современный способ — использование функции ФИЛЬТР. Она автоматически вытягивает все строки, соответствующие вашему критерию.

Шаг 1. Подготовка формулы

Перейдите на новый лист, выделите левую верхнюю ячейку будущей таблицы и введите формулу:

=ФИЛЬТР(Лист1!A2:D100; Лист1!C2:C100="Оплачено"; "Нет совпадений")

Где Лист1!A2:D100 — исходный диапазон, а Лист1!C2:C100="Оплачено" — ваше условие переноса.

Шаг 2. Проверка регистра данных

Если условие не срабатывает из-за разного регистра букв в исходной таблице, рекомендуем предварительно обработать текст. Подробнее о том, как это сделать, читайте в статье: Как сделать все буквы заглавными в Excel.

Способ 2. Перенос данных с помощью макроса VBA (для любых версий)

Если вам нужно физически переместить (вырезать) строки или работать в старых версиях Excel, используйте макрос.

Шаг 1. Открытие редактора VBA

Нажмите комбинацию клавиш Alt + F11, выберите в меню Insert -> Module и вставьте следующий код:

Sub CopyRowsByCondition()
    Dim srcSheet As Worksheet, destSheet As Worksheet
    Dim i As Long, nextRow As Long
    Set srcSheet = Sheets("Лист1")
    Set destSheet = Sheets("Лист2")
    nextRow = destSheet.Cells(destSheet.Rows.Count, "A").End(xlUp).Row + 1
    For i = 2 To srcSheet.Cells(srcSheet.Rows.Count, "A").End(xlUp).Row
        If srcSheet.Cells(i, 3).Value = "Оплачено" Then
            srcSheet.Rows(i).Copy destSheet.Rows(nextRow)
            nextRow = nextRow + 1
        End If
    Next i
End Sub

Запустите макрос кнопкой F5.

Дополнительно: Как автоматизировать запуск макроса

Вы можете привязать этот макрос к кнопке на листе или настроить его автоматический запуск при изменении ячеек через событие Worksheet_Change.

Частые ошибки / Устранение неполадок

Ошибка #ПОДПИСЬ? при использовании ФИЛЬТР: Ваша версия Excel не поддерживает динамические массивы. Используйте макрос VBA или стандартный Расширенный фильтр.

Данные не копируются из-за ограничений ввода: Если на целевом листе настроена строгая валидация ячеек, макрос может выдать ошибку. В таком случае изучите руководство: Как быстро удалить проверку данных в Excel.

Ошибки при связывании таблиц через ВПР: Если после переноса вы подтягиваете связанные данные и видите ошибку, ознакомьтесь с решением: Ошибка ВПР #Н/Д в Excel: как исправить.

Часто задаваемые вопросы

Можно ли переносить строки на другой лист автоматически без макросов?

Да, с помощью функции ФИЛЬТР в Excel 365/2021 или используя инструмент ‘Расширенный фильтр’ в более старых версиях.

Почему функция ФИЛЬТР возвращает ошибку #ПОМЕХА!?

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

Оцените статью
TechWork
Добавить комментарий