Как удалить каждую вторую или каждую N-ую строку в Excel

  • Поделись Этим
Michael Brown

В этом кратком уроке рассказывается, как удалить каждую вторую строку в Excel с помощью фильтрации или кода VBA. Вы также узнаете, как удалить каждую 3-ю, 4-ю или любую другую N-ю строку.

Существует множество ситуаций, когда вам может понадобиться удалить чередующиеся строки в рабочих листах Excel. Например, вы можете захотеть сохранить данные для четных недель (строки 2, 4, 6, 8 и т.д.) и переместить все нечетные недели (строки 3, 5, 7 и т.д.) на другой лист.

Как правило, удаление каждой второй строки в Excel сводится к выбору альтернативных строк. После того как строки выбраны, один штрих на кнопке Удалить Далее в этой статье вы узнаете несколько приемов для быстрого выделения и удаления каждой второй или каждой N-ой строки в Excel.

    Как удалить каждую вторую строку в Excel с помощью фильтрации

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

    1. В пустой столбец рядом с исходными данными введите последовательность нулей и единиц. Вы можете быстро сделать это, введя 0 в первую ячейку и 1 во вторую, затем скопируйте первые две ячейки и вставьте их вниз по столбцу до последней ячейки с данными.

      В качестве альтернативы вы можете использовать эту формулу:

      =MOD(ROW(),2)

      Логика формулы очень проста: функция ROW возвращает номер текущей строки, функция MOD делит его на 2 и возвращает остаток, округленный до целого числа.

      В результате вы получите 0 во всех четных рядах (потому что они делятся на 2 равномерно без остатка) и 1 во всех нечетных рядах:

    2. В зависимости от того, хотите ли вы удалить четные или нечетные строки, отфильтруйте единицы или нули.

      Чтобы сделать это, выберите любую ячейку в столбце Helper, перейдите к пункту Данные вкладка> Сортировка и фильтр группу, и нажмите кнопку Фильтр во всех ячейках заголовка появятся стрелки выпадающего фильтра. Вы нажмете кнопку со стрелкой в столбце Помощник и установите один из флажков:

      • 0 для удаления четных строк
      • 1 для удаления нечетных строк

      В этом примере мы собираемся удалить строки со значениями "0", поэтому отфильтруем их:

    3. Теперь, когда все строки "1" скрыты, выделите все видимые строки "0", щелкните правой кнопкой мыши на выделении и нажмите кнопку Удалить строку :

    4. В результате вышеописанного шага вы получили пустую таблицу, но не волнуйтесь, строки "1" все еще там. Чтобы сделать их снова видимыми, просто удалите автофильтр, нажав на кнопку Фильтр еще раз:

    5. Формула в столбце C пересчитывается для оставшихся строк, но она вам больше не нужна. Теперь вы можете спокойно удалить столбец Helper:

    В результате в нашем рабочем листе остались только четные недели, нечетные исчезли!

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

    Как удалить чередующиеся строки в Excel с помощью VBA

    Если вы не хотите тратить свое время на такую тривиальную задачу, как удаление каждой второй строки в ваших листах Excel, следующий макрос VBA может автоматизировать этот процесс для вас:

    Sub Delete_Alternate_Rows_Excel() Dim SourceRange As Range Set SourceRange = Application.Selection Set SourceRange = Application.InputBox("Диапазон:" , "Выберите диапазон" , SourceRange.Address, Type :=8) If SourceRange.Rows.Count>= 2 Then Dim FirstCell As Range Dim RowIndex As Integer Application.ScreenUpdating = False For RowIndex = SourceRange.Rows.Count - (SourceRange.Rows.Count Mod 2) To 1Шаг -2 Set FirstCell = SourceRange.Cells(RowIndex, 1) FirstCell.EntireRow.Delete Next Application.ScreenUpdating = True End If End Sub

    Как удалить каждую вторую строку в Excel с помощью макроса

    Вставьте макрос в рабочий лист обычным способом через редактор Visual Basic:

    1. Нажмите Alt + F11, чтобы открыть окно Visual Basic for Applications.
    2. В верхней строке меню нажмите Вставка > Модуль , и вставьте приведенный выше макрос в Модуль
    3. Нажмите клавишу F5, чтобы запустить макрос.
    4. Появится диалоговое окно с предложением выбрать диапазон. Выберите таблицу и нажмите OK:

    Готово! Все остальные строки в выбранном диапазоне будут удалены:

    Как удалить каждую N-ую строку в Excel

    Для этой задачи мы расширим технику фильтрации, которую мы использовали для удаления каждого второго ряда. Разница заключается в формуле, на которой основана фильтрация:

    MOD(ROW()- m , n )

    Где:

    • m номер строки первой ячейки с данными минус 1
    • n N-й ряд, который вы хотите удалить

    Допустим, ваши данные начинаются со 2-й строки, и вы хотите удалить каждую 3-ю строку. Итак, в вашей формуле n равна 3, и m равна 1 (ряд 2 минус 1):

    =MOD(ROW() - 1, 3)

    Если наши данные начинаются в строке 3, то m будет равен 2 (ряд 3 минус 1), и так далее. Эта поправка необходима для последовательной нумерации рядов, начиная с номера 1.

    Формула делит относительное число ряда на 3 и возвращает остаток после деления. В нашем случае она дает ноль для каждого третьего ряда, потому что каждое третье число делится на 3 без остатка (3,6,9 и т.д.):

    А теперь выполните уже знакомые действия для фильтрации "0" строк:

    1. Выберите любую ячейку в таблице и нажмите кнопку Фильтр кнопка на Данные
    2. Отфильтруйте столбец Helper, чтобы показать только значения "0".
    3. Выберите все видимые строки "0", щелкните правой кнопкой мыши и выберите Удалить строку из контекстного меню.
    4. Удалите фильтр и удалите столбец Helper.

    Аналогичным образом можно удалить каждую 4-ю, 5-ю или любую другую N-ю строку в Excel.

    Совет. Если вам нужно удалить строки с неактуальными данными, вам пригодится следующее руководство: Как удалить строки на основе значения ячейки.

    Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге снова на следующей неделе.

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.