Возможность удаления каждой второй строки в Excel — это часто возникающая задача, решение которой не займет более 5 минут.
- Инструкция;
- Способы применения.
Видеоинструкция
Как удалить каждую вторую строку в Excel
Для выполнения этой задачи потребуется первоначально добавить новый столбец, который можно назвать «Индикатором» и добавить в первые две строчки цифры 1 и 2.
После копируем первые две ячейки, кликнув правой клавишей мыши и нажав на «Копировать» (сочетание клавиш CTRL+C).
Далее выделяем область, в которой будет происходить удаление и нажимаем кликаем правой клавишей мыши и выбираем «Вставить скопированные ячейки» (сочетание клавиш CTRL+V).
После включаем фильтр, перейдя в «Данные»-«Фильтр».
Следующим этапом кликаем на 1 и удаляем ее из показа.
Выделяем оставшиеся четные строки и при помощи правой клавиши мыши выводим меню и выбираем «Удалить строку».
Включаем показ нечетных строк.
Все готово, остались лишь нечетные строки.
Удаление каждой третьей или любой другой строки в Эксель
Сделать это можно по той же инструкции, сменив лишь начальные цифры, например, если нужно избавиться от каждой третьей строки, то необходимо использовать повторяющуюся комбинацию 1, 2, 3.
Аналогичный образом можно обрезать не только 1 но 2 ненужные строки из списка, например, 2 и 4 из 5.
Содержание
- Как удалить строки по условию?
- Excel удалить все нечетные строки
- Как быстро удалить каждую вторую строку в Excel?
- Удалите все остальные строки в Excel с помощью команды фильтра
- Удалите каждую вторую строку в Excel с кодом VBA
- Удалите каждую вторую строку или столбец в Excel с помощью Kutools for Excel
Как удалить строки по условию?
Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.
Способ первый:
Использовать встроенное средство Excel — фильтр. Сначала его необходимо «установить» на листе:
- Выделяем таблицу с данными, включая заголовки. Если их нет — то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
- устанавливаем фильтр:
- для Excel 2003 : Данные—Фильтр—Автофильтр
- для Excel 2007-2010 : вкладка Данные (Data) —Фильтр (Filter)(или вкладка Главная (Home) —Сортировка и фильтр (Sort&Filter) —Фильтр (Filter) )
Теперь выбираем условие для фильтра:
- в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие(«равно», «содержит», «начинается с» и т.д.), а напротив значение в соответствии с условием.
- Для 2007-2010 Excel нужно выбрать Текстовые фильтры (Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр (Custom Filter) и ввести значения для отбора в форме
После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: 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
Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано «Привет, как дела?», а в списке есть слово «привет» — надо удалить, т.к. есть слово «привет»), то надо строку:
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
Для всех приведенных кодов можно строки не удалять, а скрывать. Для этого надо строку:
If Not rr Is Nothing Then rr.EntireRow.Delete
заменить на такую:
If Not rr Is Nothing Then rr.EntireRow.Hidden = True
По умолчанию все коды начинают просмотр строк с первой по последнюю заполненную на листе. И если необходимо удалять строки не с первой или не по последнюю, то надо внести корректировки в эту строку:
For li = 1 To lLastRow ‘цикл с первой строки до конца
1 — это первая строка; lLastRow — определяется автоматически кодом и равна номеру последней заполненной строки на листе. Если надо начать удалять строки только с 7-ой строки(например, в первых 6-ти шапка), то код будет выглядеть так:
For li = 7 To lLastRow ‘цикл с седьмой строки до конца
А если надо удалять только с 3-ей по 300-ю, то код будет выглядеть так:
For li = 3 To 300 ‘цикл с третьей строки до трехсотой
Статья помогла? Поделись ссылкой с друзьями!
Источник
Excel удалить все нечетные строки
Как быстро удалить каждую вторую строку в Excel?
Если вы хотите быстро удалить каждую вторую строку или столбец в Excel, главное, как вы можете сначала быстро выбрать каждую вторую строку или столбец, а затем применить к ним операцию удаления. И эта статья покажет вам некоторые хитрости о том, как сначала выбрать каждую вторую строку или столбец, а затем быстро их удалить.
Удалите все остальные строки в Excel с помощью команды фильтра
Microsoft Excel Фильтр может помочь вам быстро отфильтровать все остальные строки, а затем сразу удалить их, пожалуйста, сделайте следующее:
1. В пустом столбце помимо исходных данных введите 0,1,0,1…, 0,1. В этом случае мы вводим числа во вспомогательный столбец C. См. Следующий снимок экрана:
2. Выберите столбец C и щелкните значок Фильтр под Данные таб. Затем нажмите кнопку со стрелкой рядом с C1 и проверьте только 0 под Выбрать все вариант. Смотрите скриншот:
3. Тогда все строки с 1 скрыты. Выберите видимые строки с 0 и нажмите кнопку Главная > Удалить > Удалить строки листа чтобы удалить эти строки. Затем он удаляет все остальные строки, и вам нужно нажать Фильтр еще раз, чтобы отобразить только строки с 1. См. скриншоты:
4. Наконец, вы можете удалить вспомогательный столбец C по мере необходимости.
Выделите каждую вторую или n-ю строку, столбец и сразу удалите их
Kutools for Excel‘s Выберите интервальные строки и столбцы Утилита может помочь вам найти и выбрать каждую вторую или n-ю строку или столбец, а затем вы можете выполнять некоторые операции по мере необходимости. Нажмите, чтобы загрузить Kutools for Excel!
Удалите каждую вторую строку в Excel с кодом VBA
Собственно, макрос VBA — тоже хороший выбор для решения этой проблемы.
1. Удерживая нажатой другой + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, и вставьте следующий макрос в Модули Окно.
Код VBA: удалить каждую вторую строку в выделении:
3. Нажмите F5 ключ для запуска этого макроса. Затем появляется диалоговое окно для выбора диапазона. Смотрите скриншот:
4. Затем нажмите OK, каждая вторая строка в выбранном диапазоне из второй строки удаляется сразу, см. снимок экрана:
Удалите каждую вторую строку или столбец в Excel с помощью Kutools for Excel
Для начинающего пользователя Microsoft Excel использование макроса VBA немного сложно. В Выберите интервальные строки и столбцы полезности Kutools for Excel может помочь вам быстро удалить все остальные строки.
После установки Kutools for Excel, пожалуйста, сделайте следующее:
1. Выберите диапазон, в котором вы хотите удалить все остальные строки, а затем примените эту утилиту, щелкнув значок Кутулс > Выбрать > Выберите интервальные строки и столбцы….
2. В Выберите интервальные строки и столбцы диалоговом окне, укажите настройки, как показано на следующем снимке экрана, и нажмите OK кнопку, чтобы сначала выбрать все остальные строки.
3. Затем выбирается и выделяется каждая вторая строка в выделении. Смотрите скриншот:
4. Затем вы можете быстро удалить выбранные каждые остальные строки, нажав кнопку Главная > Удалить > Удалить строки листа чтобы удалить все эти строки. Смотрите скриншоты:
Kutools for Excel : с более чем 300 удобными надстройками Excel, бесплатно и без ограничений в течение 30 дней. |
С помощью этой функции вы также можете удалить каждые n строк или столбцов по мере необходимости.
Источник
Ребята помогите с удалением строк.В таблице много строк с ненужной информацией,на счастье такие строки по счету «нечетные» или «нечетные».Как их удалить? |
|
lelya Пользователь Сообщений: 14 |
Можно такой способ, немного длинный. |
lelya Пользователь Сообщений: 14 |
Сорри, можно, конечно, просто функцию mod |
Dominique Пользователь Сообщений: 23 |
{quote}{login=Lelya}{date=15.04.2008 04:16}{thema=}{post}Можно такой способ, немного длинный. А можно как-то потом автоматически выделить четные/нечетные строки? |
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
|
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#6 29.05.2010 18:24:31 {quote}{login=Dominique}{date=29.05.2010 06:11}{thema=Re: }{post}{quote}{login=Lelya}{date=15.04.2008 04:16}{thema=}{post}Можно такой способ, немного длинный. А можно как-то потом автоматически выделить четные/нечетные строки?{/post}{/quote} выбирает строки с 1 по 10 и удаляет четные
|
|
Dominique Пользователь Сообщений: 23 |
{quote}{login=Юрий М}{date=29.05.2010 06:16}{thema=}{post} http://www.planetaexcel.ru/tip.php?aid=43 {/post}{/quote} Там только про форматирование, а мне удалить потом нужно… |
Dominique Пользователь Сообщений: 23 |
{quote}{login=R Dmitry}{date=29.05.2010 06:24}{thema=Re: Re: }{post}{quote}{login=Dominique}{date=29.05.2010 06:11}{thema=Re: }{post}{quote}{login=Lelya}{date=15.04.2008 04:16}{thema=}{post}Можно такой способ, немного длинный. А можно как-то потом автоматически выделить четные/нечетные строки?{/post}{/quote} выбирает строки с 1 по 10 и удаляет четные Спасибо. На досуге испробую. Надо прайс «причесать» |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Public Sub qwe() Я сам — дурнее всякого примера! … |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Я сам — дурнее всякого примера! … |
Dominique Пользователь Сообщений: 23 |
#11 31.05.2010 22:58:15 {quote}{login=KuklP}{date=29.05.2010 07:16}{thema=}{post}Public Sub qwe() Попробовал. Стирает. Сильно! :-))) |
Блог
Удаляем четные или нечетные строки в Эксель
Очень удобный макрос, иногда бывает полезен. Удаляет четные или нечетные строки в экселе
Public Sub qwe()
Dim i As Integer
For i = 320 To 1 Step -1 ‘вместо 320 последнюю строку Вашей таблицы.
If i Mod 2 = 0 Then ‘0 — Для четных. Для нечетных 1
Rows(i).Delete
End If
Next
End Sub
Макрос вставляется в VBA, если в экселе нет панели Разработчика — открывается в настройках
Содержание
- Удалите все остальные строки, отфильтровав набор данных (с помощью формулы)
- Удалите каждую N-ю строку, отфильтровав набор данных (используя формулу)
- Автоматически удалять каждую другую строку (или N-ю строку) с помощью макроса VBA (быстрый метод)
- Удалить все остальные столбцы (или каждый N-й столбец)
Посмотреть видео — удалить все остальные строки в Excel
Иногда вам может потребоваться удалить каждую вторую строку (т. Е. Чередующиеся строки) или каждую третью / четвертую / пятую строку в Excel.
Один из вариантов использования этого может быть, когда у вас есть еженедельные данные, и вам нужны данные только за четные или нечетные недели. Другой может быть, когда вы получаете дамп данных из базы данных, и все полезные данные находятся только в каждой второй или третьей строке.
Хотя у вас всегда есть возможность вручную выбирать и удалять строки, это неэффективно, если у вас большой набор данных.
Есть способы сделать это лучше.
В этом уроке я покажу вам несколько способов удалить каждую вторую строку в Excel с помощью простой техники фильтрации. И если вам нравится использовать макрокод VBA, я также дал короткий код VBA, который делает это одним щелчком мыши. В этом учебном пособии методы показаны для всех версий Excel (2007, 2010, 2013 и 2016).
Хотя удаление каждой второй строки в Excel может быть довольно простым делом, удаление всех остальных столбцов может оказаться проблемой. Это потому, что вы не можете фильтровать столбцы в Excel (как вы можете фильтровать строки). В последнем разделе этого руководства я также покажу вам несколько способов удаления альтернативных столбцов (или каждого N-го столбца) в Excel.
Удалите все остальные строки, отфильтровав набор данных (с помощью формулы)
Если бы вы могли каким-то образом отфильтровать все четные или нечетные строки, было бы очень легко удалить эти строки / записи.
Хотя для этого нет встроенной функции, вы можете использовать вспомогательный столбец, чтобы сначала разделить строки на нечетные и четные, а затем выполнить фильтрацию на основе значения вспомогательного столбца.
Предположим, у вас есть набор данных, показанный ниже, в котором есть данные о продажах для каждого торгового представителя для двух регионов (США и Канада), и вы хотите удалить данные для Канады.
Ниже приведены шаги, чтобы сначала отфильтровать, а затем удалить все остальные строки (в которых есть данные для Канады):
- В ячейке рядом с заголовком последнего столбца введите текст HelperColumn (или любой текст заголовка, который должен иметь вспомогательный столбец)
- В ячейке под заголовком вспомогательного столбца введите следующую формулу: = ЕВРОПЕЙСКОЕ (СТРОКА ()). Скопируйте эту формулу для всех ячеек. Эта формула возвращает ИСТИНА для всех четных строк и ЛОЖЬ для всех НЕЧЕТНЫХ строк.
- Выберите весь набор данных (включая ячейки, в которые мы ввели формулу на предыдущем шаге).
- Перейдите на вкладку «Данные».
- Щелкните значок фильтра. Это применит фильтр ко всем заголовкам в наборе данных.
- Щелкните значок фильтра в ячейке HelperColumn.
- Отмените выбор параметра ИСТИНА (поэтому будет выбран только параметр ЛОЖЬ)
- Щелкните ОК. Это отфильтрует данные и покажет только те записи, в которых значение HelperColumn равно FALSE.
- Выберите все отфильтрованные ячейки в вспомогательном столбце (за исключением заголовка)
- Щелкните правой кнопкой мыши любую из выбранных ячеек и выберите «Удалить строку».
- В открывшемся диалоговом окне нажмите ОК. Это удалит все видимые записи, и на данный момент вы будете видеть только строку заголовка.
- Щелкните вкладку «Данные», а затем щелкните значок «Фильтр». Фильтр будет удален, и вы сможете увидеть все оставшиеся записи.
Вышеупомянутые шаги фильтруют каждую вторую строку в наборе данных, а затем удаляют эти строки.
На этом этапе не беспокойтесь о значениях вспомогательных столбцов.. В полученных данных есть только строки для США, а все строки для Канады удалены. Теперь вы можете удалить вспомогательный столбец.
Если вы хотите удалить каждую вторую строку, начиная с первой строки, выберите параметр ИСТИНА на шаге 7 и снимите флажок ЛОЖЬ.
Примечание. Когда вы удаляете строки в Excel с помощью описанного выше метода, он также удаляет все данные, которые могут быть у вас целиком (кроме данных в наборе данных). При использовании этого метода убедитесь, что слева и справа от удаляемого набора данных ничего нет.
Хотя описанный выше метод хорош, у него есть два недостатка:
- Вам необходимо добавить новый столбец ( HelperColumn в нашем примере выше)
- Это может занять много времени, если вам нужно удалять альтернативные строки, делайте это часто.
Связанное руководство: Удаление строк на основе значения ячейки (или условия) в Excel
В приведенном выше методе я показал вам, как удалить каждую вторую строку (альтернативную строку) в Excel.
И вы можете использовать ту же логику для удаления каждой третьей или четвертой строки в Excel.
Предположим, у вас есть набор данных, как показано ниже, и вы хотите удалить все каждую третью строку.
Шаги по удалению каждой третьей строки почти такие же, как и в предыдущем разделе (для удаления альтернативных строк). Единственное отличие состоит в формуле, использованной на шаге 2.
Ниже приведены шаги для этого:
- В ячейке рядом с заголовком последнего столбца введите текст HelperColumn (или любой текст заголовка, который должен иметь вспомогательный столбец)
- В ячейке под заголовком вспомогательного столбца введите следующую формулу: = МОД (СТРОКА (); 3) = 1. Эта формула возвращает ИСТИНА для каждой третьей строки и ЛОЖЬ для каждой второй строки.
- Выберите весь набор данных (включая ячейки, в которые мы ввели формулу на предыдущем шаге).
- Перейдите на вкладку «Данные».
- Щелкните значок фильтра. Это применит фильтр ко всем заголовкам в наборе данных.
- Щелкните значок фильтра в ячейке HelperColumn.
- Отмените выбор параметра ИСТИНА (поэтому будет выбран только параметр ЛОЖЬ)
- Щелкните ОК. Это отфильтрует данные и покажет только те записи, в которых значение HelperColumn равно FALSE.
- Выделите все ячейки в вспомогательном столбце
- Щелкните правой кнопкой мыши любую из выбранных ячеек и нажмите Удалить строку.
- В открывшемся диалоговом окне нажмите ОК. Это удалит все видимые записи, и на данный момент вы будете видеть только строку заголовка.
- Щелкните вкладку «Данные», а затем щелкните значок «Фильтр». Фильтр будет удален, и вы сможете увидеть все оставшиеся записи.
Вышеупомянутые шаги удалят каждую третью строку из набора данных, и вы получите результирующие данные, как показано ниже.
На этом этапе не беспокойтесь о значениях вспомогательных столбцов.. Теперь вы можете удалить вспомогательный столбец.
Формула, использованная на шаге 2, использует функцию МОД, которая дает остаток от деления одного числа на другое. Здесь я использовал функцию ROW, чтобы получить номер строки, и он разделен на 3 (потому что мы хотим удалить каждую третью строку).
Поскольку наш набор данных начинается со второй строки (т.е. строка № 2 содержит первую запись), я использую следующую формулу:= МОД (СТРОКА (); 3) = 1
Я приравниваю его к 1, и для каждой третьей строки формула MOD даст остаток как 1.
Вы можете соответствующим образом скорректировать формулу. Например, если первая запись вашего набора данных начинается с третьей строки и далее, формула будет выглядеть так: = МОД (СТРОКА (); 3) = 2
Автоматически удалять каждую другую строку (или N-ю строку) с помощью макроса VBA (быстрый метод)
Если вам достаточно часто приходится удалять каждую вторую строку (или каждую n-ю строку), вы можете использовать код VBA и сделать его доступным на панели быстрого доступа. Это позволит вам быстро удалять чередующиеся строки одним щелчком мыши.
Ниже приведен код, который сначала просит вас выбрать диапазон, в котором вы хотите удалить альтернативные строки, а затем удалить каждую вторую строку в выбранном наборе данных.
Sub Delete_Every_Other_Row () Dim Rng As Range Set Rng = Application.InputBox («Выбрать диапазон (исключая заголовки)», «Выбор диапазона», Тип: = 8) Для i = Rng.Rows.Count To 1 Step -2 Если i Mod 2 = 0 Then Rng.Rows (i). Удалить конец, если следующий i End Sub
Когда вы запустите приведенный выше код, он сначала попросит вас выбрать диапазон ячеек. После того, как вы сделали выбор, он пройдется по каждой строке и удалит каждую вторую строку.
Если вместо этого вы хотите удалить каждую третью строку, вы можете использовать приведенный ниже код:
Sub Delete_Every_Third_Row () Dim Rng As Range Set Rng = Application.InputBox («Выбрать диапазон (исключая заголовки)», «Выбор диапазона», Type: = 8) For i = Rng.Rows.Count To 1 Step -3 If i Mod 3 = 0 Then Rng.Rows (i). Удалить конец, если следующий i End Sub
Куда поместить этот код макроса VBA?
Вам нужно разместить этот код в штатном модуле редактора VB в Excel.
Ниже приведены шаги, чтобы открыть редактор Vb, добавить модуль и поместить в него код:
- Скопируйте указанный выше код VBA.
- Перейдите на вкладку Разработчик.
- Щелкните Visual Basic.
- В редакторе VB щелкните правой кнопкой мыши любой из объектов книги.
- Перейдите во вкладку «Вставить» и нажмите «Модуль».
- Вставьте в модуль указанный выше код VBA.
- Закройте редактор VB.
Когда у вас есть код в редакторе VB, вы можете использовать следующие методы для запуска кода:
- Запустите макрос из редактора VB (нажав зеленую кнопку воспроизведения на панели инструментов редактора VB)
- Поместив курсор в любую строку кода и нажав клавишу F5
- Назначив макрос кнопке / фигуре
- Добавив макрос на панель быстрого доступа
Вот подробное руководство о том, как запустить макрос в Excel.
Если вам приходится делать это часто, вы можете рассмотреть возможность добавления кода VBA в личную книгу макросов. Таким образом, он всегда будет доступен для использования во всех книгах.
Если у вас есть код VBA в книге, вам необходимо сохранить его как поле с поддержкой макросов (с расширением .XLSM).
Примечание. Поскольку любые изменения, внесенные кодом VBA, необратимы, лучше сначала создать резервную копию книги / рабочего листа, а затем запустить этот код.
Удалить все остальные столбцы (или каждый N-й столбец)
Удаление каждой альтернативной строки или каждой третьей / четвертой строки стало проще, поскольку вы можете использовать параметр фильтра. Все, что вам нужно сделать, это использовать формулу, которая определяет альтернативные строки (или каждую третью / четвертую строку) и фильтрует эти строки.
К сожалению, эта же методология не работает со столбцами, поскольку вы не можете фильтровать столбцы так, как фильтруете строки.
Итак, если вам нужно удалить все остальные столбцы (или каждый третий / четвертый / N-й столбец), вам нужно проявить немного больше творчества.
В этом разделе я покажу вам два метода, которые вы можете использовать для удаления каждого другого столбца в Excel (и вы можете использовать тот же метод для удаления каждого третьего / четвертого / N-го столбца, если хотите).
Удаление альтернативных столбцов с помощью формул и метода сортировки
Предположим, у вас есть набор данных, как показано ниже, и вы хотите удалить все остальные столбцы (за исключением столбца заголовка A).
Уловка здесь заключается в том, чтобы определить альтернативные столбцы с помощью формулы, а затем отсортировать столбцы на основе этой формулы. После того, как вы соберете отсортированные столбцы вместе, вы можете вручную выбрать и удалить их.
Ниже приведены шаги по удалению всех остальных столбцов в Excel:
- Вставьте строку над строкой заголовка (щелкните правой кнопкой мыши любую ячейку в заголовке, нажмите «Вставить», а затем выберите параметр «Вся строка»)
- Введите следующую формулу в ячейку над крайним левым столбцом в наборе данных и скопируйте для всех ячеек: = МОД (КОЛОНКА (); 2)
- Преобразуйте значения формулы в числа. Для этого скопируйте ячейки, щелкните правой кнопкой мыши и перейдите в меню «Специальная вставка» -> «Вставить значения».
- Выберите весь набор данных (за исключением заголовков в столбце). В этом примере я выбрал B1: G14 (и НЕТ столбец A)
- Перейдите на вкладку «Данные».
- Щелкните значок сортировки
- В диалоговом окне Сортировка внесите следующие изменения:
- Нажмите ОК.
Вышеупомянутые шаги сортируют все столбцы и объединяют все альтернативные столбцы в одном месте (в конце).
Теперь вы можете выбрать все эти столбцы (для которых значение формулы равно 1) и удалить их.
Хотя это не лучшее решение, но с ним можно справиться.
Если вы хотите удалить каждый третий столбец или каждый четвертый столбец, вам необходимо соответствующим образом скорректировать формулу.
Связанное руководство: Как СОРТИРОВАТЬ в Excel (по строкам, столбцам, цветам, датам и числам)
Удалить альтернативные столбцы с помощью VBA
Еще один быстрый способ удалить альтернативные столбцы — использовать приведенный ниже код VBA:
Sub Delete_Every_Other_Column () Dim Rng As Range Set Rng = Application.InputBox («Выбрать диапазон (исключая заголовки)», «Выбор диапазона», Тип: = 8) Для i = Rng.Columns.Count To 1 Step -2 Если i Mod 2 = 0 Then Rng.Columns (i). Удалить End If Next i End Sub
В приведенном выше коде предлагается выбрать диапазон ячеек, в котором есть столбцы. Здесь вам нужно выбрать столбцы, за исключением того, у которого есть заголовок.
После того, как вы указали диапазон ячеек с данными, он будет использовать цикл For Loop и удалит все остальные столбцы.
Если вы хотите удалить каждый третий столбец, вы можете использовать приведенный ниже код (и соответствующим образом отрегулировать, чтобы удалить N-й столбец)
Sub Delete_Every_Third_Column () Dim Rng As Range Set Rng = Application.InputBox («Выбрать диапазон (исключая заголовки)», «Выбор диапазона», Тип: = 8) Для i = Rng.Columns.Count To 1 Step -3 If i Mod 3 = 0 Then Rng.Columns (i). Удалить End If Next i End Sub
Шаги о том, где разместить этот код VBA и как его использовать, описаны в разделе выше, озаглавленном — «Автоматически удалять каждую другую строку (или N-ю строку) с помощью макроса VBA (быстрый метод)»
Надеюсь, вы нашли это руководство по Excel полезным.