0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как быстро удалить каждую вторую строку в Excel?

Как удалить все остальные строки в Excel

Excel — это мощная электронная таблица, которую многие люди используют для организации и анализа информации. Существует много общих задач для опытных пользователей, которые люди должны научиться выполнять, чтобы максимально эффективно использовать инструмент. Мы написали несколько статей, демонстрирующих некоторые из этих мощных техник, например, эту статью о том, как менять столбцы. В этой статье я покажу вам, как удалять строки, в частности, как удалять все остальные строки в Excel.

Есть три основных способа выполнения этой задачи. Первый способ — вручную выбрать и удалить строки, от которых вы хотите избавиться. Хотя это громоздко и, возможно, отнимает много времени, это может быть правильным подходом, если ваша таблица очень мала. Второй способ заключается в использовании Excel Фильтр инструмент, и третий способ заключается в использовании дополнения Excel. В этой статье я покажу вам, как использовать каждый из этих методов. Затем вы можете решить для себя, какая техника наиболее подходит для ваших насущных потребностей. Давайте начнем!

Удалить все остальные строки без фильтров

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

Например, давайте создадим таблицу в пустом рабочем листе Excel. Введите «Столбец 1» и «Столбец 2» в ячейки A1 и B1. Затем введите «Январь» в A2, «Февраль» в A3, «Март» в A4, «Апрель» в A5, «Май» в A6 и «Июнь» в ячейку A7. Добавьте случайные числа в каждую ячейку в диапазоне B2: B7. Ваша таблица будет состоять из двух колонок и шести строк (без учета заголовков), как показано на скриншоте ниже.

Строки 3, 5 и 7 — каждая вторая вторая строка в таблице выше, поскольку она также включает заголовок столбца. Нажмите «3» в дальнем левом углу таблицы, чтобы выбрать третью строку. Удерживая клавишу Ctrl, щелкните строку 5 и строку 7, чтобы выбрать пятую и седьмую строки.

Удерживая нажатой клавишу Ctrl, нажмите клавишу -. Это приведет к удалению третьей, пятой и седьмой выделенных строк. Также можно щелкнуть правой кнопкой мыши и выбрать пункт Удалить из появившегося всплывающего меню. В любом случае, три оставшиеся строки будут сохранены в вашей таблице.

Удалить все остальные строки с помощью инструмента фильтра Excel

Приведенная выше техника хорошо работает для небольших таблиц, но что если ваша таблица имеет 600 строк, или 6000 строк, или 600 000 строк? Выделение всех этих строк займет целую вечность, а первый же неверный щелчок заставит вас начать процесс заново.

Читайте так же:
Как в Excel удалить строки, не содержащие определенного текста?

Для больших электронных таблиц существует очень эффективный способ удаления строк с помощью инструмента Фильтр. Инструмент Excel «Фильтр» позволяет фильтровать столбцы в электронных таблицах. При удалении строк можно отфильтровать нужные строки и быстро выбрать те, которые нужно удалить. Чтобы настроить фильтры, необходимо добавить дополнительный столбец в рабочий лист. Этот столбец будет использоваться для хранения чисел, которые указывают, является ли данная строка удаляемой или сохраняемой.

Вы можете добавить фильтры в таблицу, нажав Ctrl + Z, чтобы отменить ранее удаленные третью, пятую и седьмую строки. Ячейка C1 должна содержать столбец фильтра. Щелкните C2, затем нажмите MOD = MOD (ROW (), 2), затем Return. Щелкните в правом нижнем углу ячейки C2, удерживая левую кнопку мыши, а затем перетащите курсор вниз до C7, чтобы скопировать функцию MOD на остальную часть столбца, как показано ниже.

При таком расположении у нас есть 0 в каждом ряду и 1 в чередующихся рядах. Отлично! Затем нажмите кнопку Фильтр на вкладке Данные Excel. Щелкните заголовок столбца C. Щелкните ячейку рядом с кнопкой Фильтр. В каждой ячейке столбца фильтра появится маленькая кнопка со стрелкой, как показано ниже.

Параметры фильтра можно открыть, нажав на маленькую стрелку внизу. Там можно установить флажки 0, а также 1. Снятие этих флажков отфильтровывает строки таблицы.

Установите флажок 0, затем нажмите кнопку Хорошо, чтобы стереть каждый второй ряд. На скриншоте ниже показано, как отфильтровывается каждый второй ряд.

Теперь вы можете быстро стереть каждую вторую строку из таблицы. Щелкните заголовок строки 3 и перетащите курсор вниз до 7, чтобы выбрать третью, пятую и седьмую строки. нажмите удалять в раскрывающемся списке на вкладке «Главная» и выберите Удалить строки листа,

Это оставит вашу таблицу, по-видимому, пустой — но нужные вам строки все еще там, просто скрытые инструментом фильтра. Чтобы они снова появились, нажмите кнопку со стрелкой в ​​ячейке «Столбец фильтра» и снова выберите флажок нажмите Хорошо кнопка, чтобы закрыть параметры фильтрации. Это восстановит строки января, марта и мая, как показано ниже.

Теперь вы можете удалить столбец из фильтра. Щелкните правой кнопкой мыши на столбце C и выберите опцию удаления. Это приведет к удалению столбца C из таблицы.

В этом примере вы добавили в таблицу только два фильтра. Вы можете изменить функцию MOD, чтобы добавить больше значений фильтра, так что вы можете удалить каждый 3-й ряд, каждый 4-й ряд и т.д. E. Функция = MOD (ROW(), 2) дает вам два варианта. Если вы хотите отфильтровать каждый третий ряд, используйте функцию = MOD (ROW (), 3). Просто измените значение в функции, чтобы настроить количество значений фильтра, добавляемых в столбец. Пользователи Excel, конечно, могут также ввести номера фильтров столбцов вручную без MOD, но это может занять некоторое время для больших таблиц.

Читайте так же:
Как автоматически вставлять строки в Excel?

Удалить все остальные строки с Kutools для Excel

Kutools For Excel — это дополнение, расширяющее инструментарий приложения. Дополнение включает в себя Выберите интервальные строки и столбцы инструмент, с помощью которого вы можете выбрать строки и столбцы с заданными интервалами. Таким образом, это также удобный инструмент для выбора, а затем удаления всех остальных строк в Excel. Проверять, выписываться эта страница сайта для дальнейших деталей Kutools.

Если вы добавите Kutools For Excel в приложение, вы можете открыть инструмент, нажав Выбрать кнопка на вкладке Kutools. щелчок Выберите интервальные строки и столбцы … в меню кнопки. Откроется окно «Выбрать интервальные строки и столбцы», в котором вы можете настроить выбор строк, настроив Интервал а также Строка ценности. После этого вы можете удалить выделенную строку выбора.

Вы можете удалить каждую вторую строку вручную в небольшой электронной таблице, но инструмент фильтрации Excel очень важен, когда вам нужно удалить каждую вторую строку в больших электронных таблицах. С помощью этого инструмента вы можете отфильтровать все строки, которые необходимо сохранить, а затем быстро удалить те, которые вам больше не нужны. Дополнение, такое как Kutools for Excel, также может сделать это за вас. В этом видеоролике на YouTube показано, как можно фильтровать, а затем удалять строки.

Есть ли другой интересный способ удаления строк в Excel? Поделитесь ими с нами ниже!

Как удалить строки по условию?

Наиболее распространенный сценарий, когда вам нужно удалить определенные строки, — это когда у вас есть большая таблица, в которой нужно удалить только те строки, которые содержат определенное слово (число, фразу). Подобная задача может быть решена различными способами.

Способ первый:
Использовать встроенное средство Excel — фильтр. Сначала его необходимо «установить» на листе:

  • Выделяем таблицу с данными, включая заголовки. Если их нет — то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
  • устанавливаем фильтр:
    • для Excel 2003 : ДанныеФильтрАвтофильтр
    • для Excel 2007-2010 : вкладка Данные (Data)Фильтр (Filter)(или вкладка Главная (Home)Сортировка и фильтр (Sort&Filter)Фильтр (Filter) )

    Теперь выберите условие для фильтра:

    • В Excel 2003 выберите Условие и в появившейся форме выберите условие («равно», «содержит», «начинается с» и т.д.), затем выберите значение в соответствии с условием. В Excel 2007-2010 выберите Текстовые фильтры и сразу выберите одно из предложенных условий, либо нажмите на Пользовательский фильтр и введите значения отбора в форму.

    После этого удалите отфильтрованные строки. В Excel 2007 могут возникнуть проблемы с удалением отфильтрованных строк, поэтому я рекомендую вам прочитать статью: Excel удаляет вместо отфильтрованных строк — все?! прежде чем продолжить. Как избежать.

    Способ второй:
    применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.

    Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim lMet As Long Dim arr sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "www.excel-vba.ru", "") If sSubStr = "" Then lMet = 0 Else lMet = 1 lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

    Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
    Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt + F8 , после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
    If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
    вместо = lMet указать <> lMet , то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
    Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска «отчет», то будут удалены все строки, в которых встречается это слово(«квартальный отчет», «отчет за месяц» и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:

    Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim arr sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "www.excel-vba.ru", "") lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

    Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения( Cells(li, lCol) = sSubStr ) с равно на неравенство( Cells(li, lCol) <> sSubStr ) и тогда удаляться будут строки, значения ячеек которых не равно указанному.

    УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
    Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет. Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
    Значения, которые необходимо найти и удалить перечисляются на листе с именем «Лист2». Т.е. указав на «Лист2» в столбце А(начиная с первой строки) несколько значений — они все будут удалены. Если лист называется иначе(скажем «Соответствия») в коде необходимо будет «Лист2» заменить на «Соответствия». Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.

    Sub Del_Array_SubStr() Dim sSubStr As String ‘искомое слово или фраза Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count ‘заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value ‘Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets("Лист2") ‘Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With ‘удаляем Dim rr As Range For lr = 1 To UBound(avArr, 1) sSubStr = avArr(lr, 1) For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li DoEvents Next lr If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

    Если вы хотите, чтобы приведенный выше код удалял строки не на основе точного совпадения слов, а на основе частичного совпадения (например, если в ячейке есть «Привет, как дела? » и слово «hello» находится в списке — его нужно удалить, потому что слово «hello» находится там), то вам нужна строка:

    If CStr(arr(li, 1)) = sSubStr Then

    Замените его на один из этих:

    If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

    ‘процедура оставляет в листе только те значения, которые перечислены в списке Sub LeaveOnlyFoundInArray() Dim sSubStr As String ‘искомое слово или фраза Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr Dim IsFind As Boolean lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count ‘заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value ‘Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets("Лист2") ‘Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With ‘удаляем Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки таблицы до конца IsFind = False For lr = 1 To UBound(avArr, 1) ‘цикл по списку значений на удаление sSubStr = avArr(lr, 1) If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then IsFind = True End If DoEvents Next lr ‘если значение таблицы не найдено в списке — удаляем строку If Not IsFind Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub

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

    If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

    Замените его на один из этих:

    If CStr(arr(li, 1)) = sSubStr Then

    Данные коды можно не удалять, а скрывать. Для этого нужно набрать строку:

    Если rr не является ничем, то rr.EntireRow.Delete

    Замените ее на одну из этих:

    If Not rr Is Nothing Then rr.EntireRow.Hidden = True

    По умолчанию все коды начинаются с первой по последнюю заполненную строку листа. И если вы хотите удалить строки, отличные от первой или последней, вы должны внести изменения в эту строку:

    For li = 1 To lLastRow ‘цикл с первой строки до конца

    1 означает первую строку; lLastRow определяется автоматически кодом и равен номеру последней заполненной строки в рабочем листе. Если вам нужно начать удаление строк с 7-й строки (например, если первые 6 строк имеют ограничение), код будет выглядеть следующим образом

    голоса
    Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector