Как да изтриете всеки друг ред в Excel (или всеки N -ти ред)

Гледайте видео - Изтрийте всеки друг ред в Excel

Понякога може да се наложи да изтриете всеки друг ред (т.е. алтернативни редове) или всеки трети/четвърти/пети ред в Excel.

Един пример за това може да бъде, когато имате седмични данни и искате данните само за четни или нечетни седмици. Друго може да бъде, когато получите изхвърляне на данни от база данни и всички полезни данни са само на всеки втори или трети ред.

Въпреки че винаги имате възможност за ръчно избиране и изтриване на редове, това е неефективно в случай, че имате голям набор от данни.

Има по -добри начини да направите това.

В този урок ще ви покажа няколко начина да изтриете всеки друг ред в Excel, използвайки проста техника за филтриране. И ако сте готини с използването на VBA макро код, аз също дадох кратък VBA код, който го прави с едно щракване. Методите са показани в този урок за всички версии на Excel (2007, 2010, 2013 и 2016)

Въпреки че изтриването на всеки друг ред в Excel може да бъде съвсем просто, изтриването на всяка друга колона може да бъде предизвикателство. Това е така, защото не можете да филтрирате колони в Excel (начинът, по който можете да филтрирате редове). В последния раздел на този урок ще ви покажа и някои начини за изтриване на алтернативни колони (или всяка N -та колона) в Excel.

Изтрийте всеки друг ред, като филтрирате набора от данни (използвайки формула)

Ако можете по някакъв начин да филтрирате всички четни редове или нечетните редове, би било супер лесно да изтриете тези редове/записи.

Въпреки че няма вградена функция за това, можете да използвате помощна колона, за да разделите първо редовете на нечетни и четни, а след това да филтрирате въз основа на стойността на помощната колона.

Да предположим, че имате набор от данни, както е показано по -долу, който съдържа данни за продажбите за всеки търговски представител за два региона (САЩ и Канада) и искате да изтриете данните за Канада.

По -долу са стъпките за първо филтриране и след това изтриване на всеки друг ред (който има данни за Канада):

  1. Въведете текста в клетката, съседна на заглавката на последната колона HelperColumn (или всеки заглавен текст, който искате да има помощната колона)
  2. В клетката под заглавката на помощната колона въведете следната формула: = ISEVEN (ROW ()). Копирайте тази формула за всички клетки. Тази формула връща TRUE за всички четни редове и FALSE за всички ODD редове
  3. Изберете целия набор от данни (включително клетките, в които въведохме формулата в горната стъпка).
  4. Щракнете върху раздела Данни
  5. Щракнете върху иконата Филтър. Това ще приложи филтър към всички заглавки в набора от данни
  6. Щракнете върху иконата Филтър в клетката HelperColumn.
  7. Отменете опцията TRUE (така че е избрана само FALSE Option)
  8. Щракнете върху OK. Това ще филтрира данните и ще показва само тези записи, където стойността на HelperColumn е FALSE.
  9. Изберете всички филтрирани клетки в помощната колона (с изключение на заглавката)
  10. Щракнете с десния бутон върху някоя от избраните клетки и кликнете върху „Изтриване на ред“
  11. В диалоговия прозорец, който се отваря, щракнете върху OK. Това ще изтрие всички видими записи и засега ще виждате само заглавния ред.
  12. Щракнете върху раздела Данни и след това върху иконата Филтър. Това ще премахне филтъра и ще можете да видите всички останали записи.

Горните стъпки филтрират всеки втори ред в набора от данни и след това изтриват тези редове.

Не се притеснявайте за стойностите на помощната колона на този етап. Получените данни имат само редовете за САЩ и всички редове в Канада са изтрити. Можете да изтриете помощната колона сега.

В случай, че искате да изтриете всеки друг ред, започвайки от първия ред, изберете опцията TRUE в стъпка 7 и премахнете избора от опцията FALSE.

Забележка: Когато изтриете редовете в Excel, използвайки горния метод, той изтрива и всички данни, които може да имате в целия (освен този в набора от данни). Когато използвате този метод, уверете се, че нямате нищо вляво и вдясно от набора от данни, който изтривате.

Въпреки че горният метод е страхотен, той има два недостатъка:

  1. Трябва да добавите нова колона ( HelperColumn в нашия пример по -горе)
  2. Може да отнеме много време, ако трябва да изтривате алтернативни редове, правете това често
Свързан урок: Изтриване на редове въз основа на клетъчна стойност (или условие) в Excel

Изтрийте всеки N -ти ред, като филтрирате набора от данни (използвайки формула)

В горния метод ви показах как да изтриете всеки друг ред (алтернативен ред) в Excel.

Можете да използвате същата логика и за изтриване на всеки трети или четвърти ред в Excel.

Да предположим, че имате набор от данни, както е показано по -долу и искате да изтриете всички на всеки трети ред.

Стъпките за изтриване на всеки трети ред са почти същите като тези, описани в горния раздел (за изтриване на алтернативни редове). Единствената разлика е във формулата, използвана в стъпка 2.

По -долу са описани стъпките за това:

  1. Въведете текста в клетката, съседна на заглавката на последната колона HelperColumn (или всеки заглавен текст, който искате да има помощната колона)
  2. В клетката под заглавката на помощната колона въведете следната формула: = MOD (ROW (), 3) = 1. Тази формула връща TRUE за всеки трети ред и FALSE за всеки друг ред.
  3. Изберете целия набор от данни (включително клетките, в които въведохме формулата в горната стъпка).
  4. Щракнете върху раздела Данни
  5. Щракнете върху иконата Филтър. Това ще приложи филтър към всички заглавки в набора от данни
  6. Щракнете върху иконата Филтър в клетката HelperColumn.
  7. Отменете опцията TRUE (така че е избрана само FALSE Option)
  8. Щракнете върху OK. Това ще филтрира данните и ще показва само тези записи, където стойността на HelperColumn е FALSE.
  9. Изберете всички клетки в помощната колона
  10. Щракнете с десния бутон върху някоя от избраните клетки и щракнете върху Изтриване на ред
  11. В диалоговия прозорец, който се отваря, щракнете върху OK. Това ще изтрие всички видими записи и засега ще виждате само заглавния ред.
  12. Щракнете върху раздела Данни и след това върху иконата Филтър. Това ще премахне филтъра и ще можете да видите всички останали записи.

Горните стъпки ще изтрият всеки трети ред от набора от данни и ще получите получените данни, както е показано по -долу.

Не се притеснявайте за стойностите на помощната колона на този етап. Можете да изтриете помощната колона сега.

Формулата, използвана в Стъпка 2, използва функцията MOD - която дава остатъка, когато едно число е разделено на другото. Тук използвах функцията ROW, за да получа номера на реда и той е разделен на 3 (защото искаме да изтрием всеки трети ред).

Тъй като нашият набор от данни започва от втория ред нататък (т.е. ред #2 съдържа първия запис), използвам следната формула:= MOD (ROW (), 3) = 1

Приравнявам го на 1 и за всеки трети ред формулата MOD ще даде остатъка като 1.

Можете съответно да коригирате формулата. Например, ако първият запис на набора от данни започва от трети ред нататък, формулата ще бъде = MOD (ROW (), 3) = 2

Автоматично изтриване на всеки друг ред (или N -ти ред) с помощта на VBA макрос (бърз метод)

Ако се налага да изтривате всеки друг ред (или всеки n -ти ред) доста често, можете да използвате VBA код и той да бъде достъпен в лентата с инструменти за бърз достъп. Това ще ви позволи бързо да изтриете алтернативни редове с едно щракване.

По -долу е кодът, който първо ви моли да изберете диапазона, в който искате да изтриете алтернативни редове, и след това да изтриете всеки втори ред в избрания набор от данни.

Sub Delete_Every_Other_Row () Dim Rng As Range Set Rng = Application.InputBox ("Изберете диапазона (с изключение на заглавките)", "Range Selection", Type: = 8) For i = Rng.Rows.Count To 1 Step -2 If i Mod 2 = 0 Тогава Rng.Rows (i). Изтриване на край, ако следващ i край на под

Когато стартирате горния код, той първо ще ви помоли да изберете диапазона от клетки. След като направите избора, той ще премине през всеки ред и ще изтрие всеки втори ред.

Ако вместо това искате да изтриете всеки трети ред, можете да използвате кода по -долу:

Sub Delete_Every_Third_Row () Dim Rng As Range Set Rng = Application.InputBox ("Изберете диапазона (с изключение на заглавките)", "Range Selection", Type: = 8) For i = Rng.Rows.Count To 1 Step -3 If i Mod 3 = 0 Тогава Rng.Rows (i). Изтриване на край, ако следващ i край на под

Къде да поставите този VBA макро код?

Трябва да поставите този код в обикновен модул в редактора на VB в Excel.

По -долу са стъпките за отваряне на Vb Editor, добавяне на модул и поставяне на кода в него:

  1. Копирайте горния код на VBA.
  2. Отидете в раздела Разработчик.
  3. Кликнете върху Visual Basic.
  4. В редактора на VB щракнете с десния бутон върху някой от обектите на работната книга.
  5. Отидете на Вмъкване и щракнете върху Модул.
  6. В модула поставете горния код VBA.
  7. Затворете редактора на VB.

След като имате кода във VB Editor, можете да използвате следните методи за стартиране на кода:

  • Стартирайте макрос от VB Editor (като щракнете върху зеления бутон за възпроизвеждане в лентата с инструменти на VB Editor)
  • Като поставите курсора на който и да е ред в кода и използвайте клавиша F5
  • Чрез присвояване на макроса на бутон/форма
  • Като добавите макроса към лентата с инструменти за бърз достъп
Ето подробен урок за това как да стартирате макрос в Excel.

Ако трябва да правите това често, можете да помислите за добавяне на VBA кода към личната работна книга за макроси. По този начин тя винаги ще бъде достъпна за използване във всички работни книги.

Когато имате VBA код в работна книга, трябва да го запишете като файл с активиран макрос (с разширението .XLSM)

Забележка: Тъй като всички промени, направени от VBA кода, са необратими, най-добре е първо да направите резервно копие на работната книга/работен лист и след това да стартирате този код.

Изтриване на всяка друга колона (или всяка N -та колона)

Изтриването на всеки алтернативен ред или на всеки трети/четвърти ред става лесно, тъй като можете да използвате опцията за филтриране. Всичко, което трябва да направите, е да използвате формула, която идентифицира алтернативни редове (или всеки трети/четвърти ред) и филтрира тези редове.

За съжаление, същата тази методология няма да работи с колони - тъй като не можете да филтрирате колоните по начина, по който филтрирате редове.

Така че, ако трябва да изтриете всяка друга колона (или всяка трета/четвърта/N -та колона), трябва да сте малко по -креативни.

В този раздел ще ви покажа два метода, които можете да използвате, за да изтриете всяка друга колона в Excel (и можете да използвате същия метод, за да изтриете всяка трета/четвърта/N -та колона, ако искате).

Изтрийте алтернативни колони, използвайки формули и метод за сортиране

Да предположим, че имате набор от данни, както е показано по -долу и искате да изтриете всяка друга колона (с изключение на заглавната колона A)

Номерът тук ще бъде да се идентифицират алтернативни колони с помощта на формула и след това да се сортират колоните въз основа на тази формула. След като съберете сортираните колони, можете ръчно да изберете и изтриете това.

По -долу са стъпките за изтриване на всяка друга колона в Excel:

  1. Вмъкнете ред над заглавния ред (щракнете с десния бутон върху всяка клетка в заглавката, щракнете върху Вмъкване и след това върху опцията Цял ред)
  2. Въведете следната формула в клетката над най-лявата колона в набора от данни и копирайте за всички клетки: = MOD (КОЛОНА (), 2)
  3. Преобразувайте стойностите на формулата в числа. За да направите това, копирайте клетките, щракнете с десния бутон и отидете на Специално поставяне -> Поставяне на стойности.
  4. Изберете целия набор от данни (с изключение на заглавките в колоната). В този пример съм избрал B1: G14 (и НЕ колона А)
  5. Щракнете върху раздела Данни
  6. Кликнете върху иконата Сортиране
  7. В диалоговия прозорец Сортиране направете следните промени:
    • Кликнете върху бутона „Опции“ и в диалоговия прозорец, който се отваря, щракнете върху „Сортиране отляво надясно“ и след това щракнете върху OK
    • В падащото меню Сортиране по, изберете ред 1. Това е редът, който има резултатите от формулата
    • В падащото меню Поръчка изберете От най-малкия до най-големия.
  8. Щракнете върху OK

Горните стъпки сортират всички колони и обединяват всички алтернативни колони на едно място (в края).

Сега можете да изберете всички тези колони (за които стойността на формулата е 1) и да ги изтриете.

Въпреки че това не е най -доброто решение, все пак свършва работата.

В случай, че искате да изтриете всяка трета колона или всяка четвърта колона, трябва да коригирате съответно формулата.

Свързан урок: Как да сортирате в Excel (по редове, колони, цветове, дати и числа)

Изтриване на алтернативни колони с помощта на VBA

Друг бърз начин да изтриете алтернативни колони е да използвате кода по -долу VBA:

Sub Delete_Every_Other_Column () Dim Rng As Range Set Rng = Application.InputBox ("Изберете диапазона (с изключение на заглавките)", "Range Selection", Тип: = 8) За i = Rng.Columns.Count To 1 Step -2 Ако i Mod 2 = 0 Тогава Rng. Колони (i). Изтриване на край, ако следващ i Край на под

Горният код ви моли да изберете диапазон от клетки, който съдържа колоните. Тук трябва да изберете колоните, с изключение на тази, която има заглавка.

След като зададете диапазона от клетки с данните, той ще използва For Loop и ще изтрие всяка друга колона.

В случай, че искате да изтриете всяка трета колона, можете да използвате кода по -долу (и да коригирате съответно, за да изтриете N -та колона)

Sub Delete_Every_Third_Column () Dim Rng As Range Set Rng = Application.InputBox ("Изберете диапазона (с изключение на заглавките)", "Range Selection", Type: = 8) For i = Rng.Columns.Count To 1 Step -3 If i Mod 3 = 0 Тогава Rng. Колони (i). Изтриване на край, ако следващ i Край на под

Стъпките за това къде да поставите този VBA код и как да го използвате, обхванати в горния раздел, озаглавен - „Автоматично изтриване на всеки друг ред (или N -ти ред) с помощта на VBA макрос (бърз метод)“

Надявам се, че сте намерили този урок за Excel полезен.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave