Оглавление
В этом кратком уроке рассказывается, как удалить каждую вторую строку в Excel с помощью фильтрации или кода VBA. Вы также узнаете, как удалить каждую 3-ю, 4-ю или любую другую N-ю строку.
Существует множество ситуаций, когда вам может понадобиться удалить чередующиеся строки в рабочих листах Excel. Например, вы можете захотеть сохранить данные для четных недель (строки 2, 4, 6, 8 и т.д.) и переместить все нечетные недели (строки 3, 5, 7 и т.д.) на другой лист.
Как правило, удаление каждой второй строки в Excel сводится к выбору альтернативных строк. После того как строки выбраны, один штрих на кнопке Удалить Далее в этой статье вы узнаете несколько приемов для быстрого выделения и удаления каждой второй или каждой N-ой строки в Excel.
Как удалить каждую вторую строку в Excel с помощью фильтрации
По сути, обычный способ удаления каждой второй строки в Excel заключается в следующем: сначала вы фильтруете чередующиеся строки, затем выделяете их и удаляете все сразу. Подробные шаги приведены ниже:
- В пустой столбец рядом с исходными данными введите последовательность нулей и единиц. Вы можете быстро сделать это, введя 0 в первую ячейку и 1 во вторую, затем скопируйте первые две ячейки и вставьте их вниз по столбцу до последней ячейки с данными.
В качестве альтернативы вы можете использовать эту формулу:
=MOD(ROW(),2)
Логика формулы очень проста: функция ROW возвращает номер текущей строки, функция MOD делит его на 2 и возвращает остаток, округленный до целого числа.
В результате вы получите 0 во всех четных рядах (потому что они делятся на 2 равномерно без остатка) и 1 во всех нечетных рядах:
- В зависимости от того, хотите ли вы удалить четные или нечетные строки, отфильтруйте единицы или нули.
Чтобы сделать это, выберите любую ячейку в столбце Helper, перейдите к пункту Данные вкладка> Сортировка и фильтр группу, и нажмите кнопку Фильтр во всех ячейках заголовка появятся стрелки выпадающего фильтра. Вы нажмете кнопку со стрелкой в столбце Помощник и установите один из флажков:
- 0 для удаления четных строк
- 1 для удаления нечетных строк
В этом примере мы собираемся удалить строки со значениями "0", поэтому отфильтруем их:
- Теперь, когда все строки "1" скрыты, выделите все видимые строки "0", щелкните правой кнопкой мыши на выделении и нажмите кнопку Удалить строку :
- В результате вышеописанного шага вы получили пустую таблицу, но не волнуйтесь, строки "1" все еще там. Чтобы сделать их снова видимыми, просто удалите автофильтр, нажав на кнопку Фильтр еще раз:
- Формула в столбце 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:
- Нажмите Alt + F11, чтобы открыть окно Visual Basic for Applications.
- В верхней строке меню нажмите Вставка > Модуль , и вставьте приведенный выше макрос в Модуль
- Нажмите клавишу F5, чтобы запустить макрос.
- Появится диалоговое окно с предложением выбрать диапазон. Выберите таблицу и нажмите 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" строк:
- Выберите любую ячейку в таблице и нажмите кнопку Фильтр кнопка на Данные
- Отфильтруйте столбец Helper, чтобы показать только значения "0".
- Выберите все видимые строки "0", щелкните правой кнопкой мыши и выберите Удалить строку из контекстного меню.
- Удалите фильтр и удалите столбец Helper.
Аналогичным образом можно удалить каждую 4-ю, 5-ю или любую другую N-ю строку в Excel.
Совет. Если вам нужно удалить строки с неактуальными данными, вам пригодится следующее руководство: Как удалить строки на основе значения ячейки.
Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге снова на следующей неделе.