Эта статья шаг за шагом проведет вас через процесс выбора определенных вами столбцов и строк в Excel, например каждого второго или каждого n-го столбца (или строки).

Microsoft Excel, популярная программа для работы с электронными таблицами для энтузиастов и профессионалов в области обработки данных, предлагает несколько методов выбора столбцов и строк. 

Хотя многие знакомы со стандартными методами, существуют менее известные, но более эффективные варианты решения этой задачи.

Выбор нескольких столбцов в Excel при помощи мыши и клавиатуры

Самый простой способ выделить несколько столбцов в Excel — использовать клавишу Ctrl и мышь. Вот как вы можете это сделать:

  1. Нажмите и удерживайте клавишу Ctrl.
  2. Кликните на заголовок, например, каждого второго столбца.
  3. Повторяйте шаги 2 и 3, пока не выберете все нужные столбцы.
  4. Отпустите Ctrl.

В результате у вас выбраны нужные столбцы:

Выбор нескольких столбцов в Excel

С помощью Ctrl, вы можете выделить каждый третий, каждый четвертый или каждый n-й столбец, чтобы можно было применить к ним форматирование или выполнить вычисления с определенными диапазонами ваших данных.

Этот метод выбора каждого второго или каждого n-го столбца является простым и эффективным подходом, но это только для небольших наборов данных.  При работе с большими таблицами такой способ окажется слишком громоздким и трудоемким. Щелканье мышью по заголовку каждого нужного столбца вручную может привести к ошибкам и однозначно будет весьма утомительным. 

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

Выделить каждый второй или N-й столбец с помощью формулы

Если вы предпочитаете более точный метод выбора каждого второго или n-го столбца в Excel, вы можете добиться этого с помощью функции ВЫБОРСТОЛБЦ (CHOOSECOLS в английском варианте). Сразу отмечу, что эта функция доступна только в Excel 365. Если у вас другой Эксель, переходите к следующему разделу.

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

  1. В пустую ячейку введите формулу ВЫБОРСТОЛБЦ. Первым аргументом должен быть исходный диапазон, содержащий столбцы, которые вы хотите выбрать.
  2. В последующих аргументах укажите номера столбцов, данные которых вы хотите вернуть.
  3. Нажмите Enter.

Например, чтобы выбрать каждый четный столбец в диапазоне A2:F20, формула принимает следующий вид:

=ВЫБОРСТОЛБЦ(A2:F20;2;4;6) 

Эта формула указывает, что вы хотите вернуть столбцы 2, 4 и 6 из диапазона A2:F20.

Выбор каждого второго или N-го столбца с помощью формулы

Формула ВЫБОРСТОЛБЦ возвращает указанные столбцы в виде динамического массива , который можно легко выбрать и скопировать куда необходимо.

Код Excel VBA чтобы выделить каждый второй столбец

Используя макросы VBA в Excel, вы можете автоматизировать процесс выбора каждого второго столбца точно и с минимальными затратами времени.

Макрос для выбора каждого нечетного столбца в Excel

Этот код VBA позволяет выбирать каждый нечетный столбец в Excel, например 1, 3, 5 и т. д. Это достигается путем перебора столбцов в выбранном пользователем диапазоне и создания нового диапазона, включающего только нечетные столбцы. Затем выбирается этот созданный диапазон, что позволяет легко идентифицировать и манипулировать нужными столбцами.

Код VBA для выбора каждого нечетного столбца

Sub ВыбратьНечетныеСтолбцы()
    Dim selectedRange As Range
    Dim i As Integer
    Dim newRange As Range
    
    ' выбранный диапазон
    Set selectedRange = Selection
    
    ' для каждого столбца в выбранном диапазоне
    For i = 1 To selectedRange.Columns.Count Step 2
        ' добавить каждый нечетный столбец в новый диапазон
        If newRange Is Nothing Then
            Set newRange = selectedRange.Columns(i)
        Else
            Set newRange = Union(newRange, selectedRange.Columns(i))
        End If
    Next i
    
    ' выделить новый диапазон
    If Not newRange Is Nothing Then
        newRange.Select
    End If
End Sub

Макрос для выбора каждого четного столбца в Excel

Следующий код VBA позволяет выбирать каждый четный столбец, например 2, 4, 6 и т. д. Он последовательно перебирает столбцы в заранее выбранном диапазоне и создает новый диапазон, включающий только четные столбцы.

Код VBA для выбора каждого четного столбца

Sub ВыбратьЧетныеСтолбцы()
    Dim selectedRange As Range
    Dim i As Integer
    Dim newRange As Range
    
    ' выбранный диапазон
    Set selectedRange = Selection
    
    ' для каждого столбца в выбранном диапазоне
    For i = 2 To selectedRange.Columns.Count Step 2
        ' добавить каждый четный столбец в новый диапазон
        If newRange Is Nothing Then
            Set newRange = selectedRange.Columns(i)
        Else
            Set newRange = Union(newRange, selectedRange.Columns(i))
        End If
    Next i
    
    ' выделить новый диапазон
    If Not newRange Is Nothing Then
        newRange.Select
    End If
End Sub

Чтобы добавить код в вашу рабочую книгу, выполните действия, описанные в разделе «Как вставить код VBA в Excel» .

Чтобы выбрать каждый второй столбец с помощью макроса, выполните следующие действия:

  1. Выделите диапазон, в котором вы хотите выбрать столбцы.
  2. Нажмите комбинацию  Alt + F8 чтобы открыть диалоговое окно макроса.
  3. Выберите нужный макрос — ВыбратьЧетныеСтолбцы или ВыбратьНечетныеСтолбцы.
  4. Нажмите «Выполнить».
Как выделить каждый четный столбец в Excel при помощи макроса VBA

Макрос Excel для выбора каждого N-го столбца

Если ваша задача состоит в том, чтобы выбрать каждый N-й столбец в диапазоне, вы можете выполнить это с помощью макроса VBA и пользовательской формы.

Сначала создайте UserForm:

  1. В редакторе VBA нажмите «Insert» > «UserForm» («Вставка» > «Пользовательская форма»).
  2. Создайте UserForm с полем ввода, например TextBox1, чтобы в нем вводить значение N.
  3. Добавьте кнопку ОК для запуска макроса.
выбор каждого N-го столбца Excel при помощи макроса VBA

Когда форма будет создана, добавьте код для кнопки ОК. Для этого дважды щелкните кнопку «ОК» в пользовательской форме и вставьте следующий код в появившееся окно «Код»:

Код VBA для выбора каждого N-го столбца в Excel

Private Sub CommandButton1_Click()
Dim selectedRange As Range
    Dim i As Integer
    Dim newRange As Range
    Dim inputNum
    
    Set selectedRange = Selection
        ' разрешить вводить только целое число
    inputNum = Int(Val(TextBox1.Text))
        ' двигаться в диапазоне через N столбцов
        If inputNum > selectedRange.Columns.Count Then
            MsgBox "Неверное значение N. Введите корректное значение и попробуйте еще раз.", vbExclamation, "Error"
            Exit Sub
        End If
    For i = inputNum To selectedRange.Columns.Count Step inputNum
        ' добавить каждый N столбец в новый диапазон
        If newRange Is Nothing Then
            Set newRange = selectedRange.Columns(i)
        Else
            Set newRange = Union(newRange, selectedRange.Columns(i))
        End If
    Next i
    ' выделить новый диапазон
    If Not newRange Is Nothing Then
        newRange.Select
    End If

    Me.Hide
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   Select Case KeyAscii
      Case 48 To 57 'цифры
         'разрешаем ввод
      Case 8, 9, 13, 27 'пробел, tab, enter, esc
         'разрешаем эти клавиши
      Case Else 'все остальное запрещаем
         KeyAscii = 0
   End Select
End Sub

И последний шаг: создайте макрос ВыбратьКаждыйNСтолбец, чтобы вызывать UserForm. Для этого добавьте следующий код в модуль вашей книги:

Sub ВыбратьКаждыйNСтолбец()
' вызвать диалоговое окно для ввода значения N
        UserForm1.Show
End Sub

Как показано на скриншоте ниже, сначала выделите ваши данные, затем выполните макрос. Появится окно с запросом значения N. Введите желаемое число (допускаются только целые числа), и программа выделит каждый N-й столбец в указанном вами диапазоне.

как выделить каждый N столбец при помощи макроса VBA

Рис5

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

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

СоветЧтобы сэкономить время, вы можете скачать образец книги по ссылке ниже, который включает в себя предварительно разработанную пользовательскую форму и макрос. А затем просто скопируйте код и UserForm1 из файла-образца в свою рабочую книгу.

Файл для скачивания

VBA для выбора каждого второго или каждого N-го столбца в Excel (файл .xlsm)

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

Далее мы рассмотрим различные методы выбора каждой второй или каждой n-й строки в Excel, независимо от того, работаете ли вы с небольшими или большими наборами данных.

Выделите любые строки, используя клавишу Ctrl.

Если вы работаете с небольшим набором данных, вручную выбрать каждую вторую или каждую n-ю строку можно с помощью клавиши Ctrl. Всё аналогично тому, как мы действовали при ручном выборе столбцов:

  1. Выделите первую строку, которую хотите выбрать, а затем нажмите и удерживайте клавишу Ctrl.
  2. Удерживая Ctrl, последовательно выделите все строки, которые вам необходимы.
  3. Отпустите Ctrl.
Как выбрать любые строки, используя клавишу Ctrl

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

Выбор каждой второй строки с помощью формулы и фильтра

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

  1. В пустой столбец рядом с набором данных (назовём его Проверка) введите одну из этих формул:

=ЕНЕЧЁТ(СТРОКА())

=ЕЧЁТН(СТРОКА())

В этих формулах используется функция СТРОКА для получения номера каждой строки, а функции ЕЧËТН и ЕНЕЧËТ определяют, является ли номер строки четным или нечетным соответственно. Это поможет вам определить те строки, которые вы хотите выбрать.

Выбор каждой второй строки Excel с помощью формулы и фильтра
  1. Добавьте фильтры в заголовки столбцов. Для этого выберите любую ячейку в наборе данных и нажмите кнопку «Фильтр» на вкладке «Данные» или воспользуйтесь комбинацией клавиш Ctrl + Shift + L.
  2. В вспомогательном столбце щелкните стрелку фильтра и оставьте флажок на ИСТИНА либо ЛОЖЬ в зависимости от того, хотите ли вы выбрать нечетные или четные строки.
  3. Нажмите «ОК», и Excel отфильтрует данные, отображая только выбранные вами строки. 
  4. Выделите отфильтрованные строки с помощью мыши или клавиш со стрелками. 

В результате мы видим только чётные строки.

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

Аналогично, если вы скопируете видимые строки в другое место, будут скопированы только эти строки, без скрытой информации.

Выделить каждую n-ю строку при помощи формулы и фильтра

Чтобы выбрать каждую n-ю строку в Excel, вы можете немного изменить предыдущий метод, используя формулу ОСТАТ для вспомогательного столбца:

=ОСТАТ(СТРОКА() - m; n)

Где:

  • m — номер строки первой ячейки в вашем наборе данных минус 1.
  • n — это N-я строка, которую вы хотите выбрать.

Например, если ваши данные начинаются с третьей строки и вы хотите выбрать каждую четвертую, тогда m будет равно 1 (строка 2 минус 1), а n будет равно 4:

=ОСТАТ(СТРОКА() - 1; 4)

Выделить каждую n-ю строку при помощи формулы и фильтра

Создав формулу, выполните следующие действия, чтобы отфильтровать каждую N-ю строку в Excel:

  1. Определите значения m и n для формулы ОСТАТ и запишите ее в столбец «Проверка».
  2. Добавьте автоматические фильтры Excel к вашему набору данных.
  3. В вспомогательном столбце щелкните стрелку фильтра и снимите флажок «Выбрать все» .
  4. Установите флажок рядом с «0», чтобы во вспомогательном столбце отображались только значения «0». Эти значения соответствуют каждой N-й строке в соответствии с выбранным вами значением n. Нажмите ОК, чтобы применить фильтр.
  5. Выберите все видимые строки, которые остаются после фильтрации. Вы можете их закрасить цветом, скопировать или вовсе удалить. 
  6. Удалите фильтр и удалите вспомогательный столбец, если он больше не нужен.

Код Excel VBA для выбора каждой второй строки

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

Выделить каждую нечетную строку в Excel

Код перебирает каждую строку в выбранном диапазоне, добавляя каждую нечетную строку в новый диапазон с помощью функции Union. Затем он выделяет новый диапазон строк, если он не пуст.

Код VBA для выбора каждой нечетной строки

Sub ВыбратьНечетныеСтроки()
    Dim selectedRange As Range
    Dim i As Integer
    Dim newRange As Range

    Set selectedRange = Selection
    
        ' для каждой строки в выбранном диапазоне
    For i = 1 To selectedRange.Rows.Count Step 2
        ' добавить каждую четную строку в новый диапазон
        If newRange Is Nothing Then
            Set newRange = selectedRange.Rows(i)
        Else
            Set newRange = Union(newRange, selectedRange.Rows(i))
        End If
    Next i
    
    ' выбрать новый диапазон
    If Not newRange Is Nothing Then
        newRange.Select
    End If
End Sub

Выделить каждую четную строку в Excel

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

Код VBA для выбора каждой четной строки

Sub ВыбратьЧетныеСтроки()
    Dim selectedRange As Range
    Dim i As Integer
    Dim newRange As Range
    
    Set selectedRange = Selection
    
    ' для каждой строки в выбранном диапазоне
    For i = 2 To selectedRange.Rows.Count Step 2
        ' добавить каждую четную строку в новый диапазон
        If newRange Is Nothing Then
            Set newRange = selectedRange.Rows(i)
        Else
            Set newRange = Union(newRange, selectedRange.Rows(i))
        End If
    Next i
    
    ' выбрать новый диапазон
    If Not newRange Is Nothing Then
        newRange.Select
    End If
End Sub

Чтобы добавить коды в книгу, следуйте инструкции «Как вставить код VBA в Excel» .

Чтобы выбрать каждую вторую строку в Excel с помощью VBA, выполните следующие действия:

  1. Выберите целевой диапазон.
  2. Нажимать Alt + F8, чтобы открыть диалоговое окно макросов.
  3. Выберите нужный макрос — ВыбратьЧетныеСтроки или ВыбратьНечетныеСтроки.
  4. Нажмите «Выполнить».
выбрать каждую вторую строку в Excel с помощью VBA

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

Excel VBA для выбора каждой N-й строки

Чтобы выбрать каждую N-ю строку в Excel с помощью VBA, вы можете создать форму ввода, которая будет выполнять роль графического интерфейса для ввода параметра N.

Создайте UserForm с необходимыми элементами TextBox1 и кнопкой CommandButton, как было уже описано ранее в макросе для выделения каждого N-го столбца. 

После завершения разработки формы добавьте код кнопки ОК, которая будет запускать макрос. Для этого дважды щелкните мышкой эту кнопку в форме, а затем вставьте код в появившееся окно «Код». 

Программа просматривает каждую строку диапазона с указанным размером шага (N), добавляя каждую N-ю строку в новый диапазон. Затем мы даем команду выделить этот новый диапазон и скрываем UserForm.

Код UserForm для выбора каждой N-й строки

Private Sub CommandButton1_Click()
Dim selectedRange As Range
    Dim i As Integer
    Dim newRange As Range
    Dim inputNum

    Set selectedRange = Selection
        ' используется только целая часть числа
    inputNum = Int(Val(TextBox1.Text))
        ' для каждой строки в выбранном диапазоне
        If inputNum > selectedRange.Rows.Count Then
            MsgBox "Неверный ввод. Введите допустимое значение N.", vbExclamation, "Error"
            Exit Sub
        End If
    For i = inputNum To selectedRange.Rows.Count Step inputNum
        ' добавить каждую N строку в новый диапазон
        If newRange Is Nothing Then
            Set newRange = selectedRange.Rows(i)
        Else
            Set newRange = Union(newRange, selectedRange.Rows(i))
        End If
    Next i
    ' выбрать новый диапазон
    If Not newRange Is Nothing Then
        newRange.Select
    End If

    Me.Hide
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   Select Case KeyAscii
      Case 48 To 57 'цифры
         'разрешаем ввод
      Case 8, 9, 13, 27 'пробел, tab, enter, esc
         'разрешаем эти клавиши
      Case Else 'все остальное запрещаем
         KeyAscii = 0
   End Select
End Sub

Этот код также проверяет, чтобы в поле TextBox1 было введено только целое положительное число, так как другие варианты для указания количества строк не имеют смысла.

Затем создайте макрос ВыбратьКаждуюNСтроку, добавив следующий код в модуль вашей рабочей книги:

Макрос VBA для выбора каждой N-й строки

Sub ВыбратьКаждуюNСтроку()
' вызвать форму для ввода значения N
        UserForm1.Show
End Sub

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

Выделить каждую N строку в Excel

СоветВы можете сэкономить время, загрузив файл-образец, ссылка на который есть в конце этого поста, и который включает в себя предварительно созданную пользовательскую форму и код VBA. Просто скопируйте код и UserForm1 из образца в свою книгу. 

Чтобы обеспечить легкий доступ к этим макросам из любой рабочей книги, рассмотрите возможность добавления кода в собственный файл надстройки.

Конечно, выбор каждой второй строки или каждой N-й строки в Excel можно сделать проще. Для небольших таблиц может быть достаточно, удерживая клавишу Ctrl, просто вручную выбрать нужные строки. 

Однако для больших наборов данных использование вспомогательных столбцов с фильтрацией или автоматизация процесса с помощью VBA может быть более оптимальным решением. 

Поэкспериментируйте с этими методами и найдите тот вариант, который лучше всего соответствует вашим потребностям. Удачи!

Файл для скачивания

VBA для выбора каждой второй или каждой n-й строки в Excel (файл .xlsm)