В случае, если вам интересно, как кто-то может найти каждый n-й элемент в столбце. В этой статье мы узнаем, как вернуть каждый n-й элемент из списка. Мы будем использовать код VBA, чтобы найти результат .

Вопрос: я хочу, чтобы код макроса извлекал каждое n-е значение из столбца. Я пытаюсь перенести значения из одного листа / столбца в другой лист / столбец. Я пробовал использовать многие функции, такие как СМЕЩЕНИЕ, но не мог понять формулу, которая может дать результат.

Давайте возьмем пример из 100 значений в столбце A, и мы хотим узнать каждое 10 ^ th ^ значение в столбце B. Примеры значений, начиная с ячейки A1, равной 1, до ячейки A100, равной 100; ниже приведен снимок данных в столбце A:

img1

Чтобы получить результат, нам нужно выполнить следующие шаги, чтобы запустить редактор VB. Щелкните вкладку «Разработчик». В группе «Код» выберите Visual Basic

img2

  • Скопируйте приведенный ниже код в стандартный модуль

Function INDEXN(InputRange As Range, N As Integer) As Variant

' returns every N-th item from InputRange' --- Comment

' select the desired target range for the function and' --- Comment

' enter as an array function with Ctrl+Shift+Enter.' --- Comment

Dim ItemList() As Variant, c As Range, i As Long, iCount As Long

i = 0

iCount = 0

ReDim ItemList(1 To InputRange.Cells.Count \ N)

For Each c In InputRange

i = i + 1

If i Mod N = 0 Then

iCount = iCount + 1

On Error Resume Next

ItemList(iCount) = c.Value

On Error GoTo 0

End If

Next c

INDEXN = ItemList

If InputRange.Rows.Count >= InputRange.Columns.Count Then

INDEXN = Application.WorksheetFunction.Transpose(INDEXN)

End If

Erase ItemList

End Function

img3

Чтобы получить каждый n-й элемент в диапазоне B1: B10, формула имеет вид \ {= INDEXN ($ A $ 1: $ A $ 100, 10)} Примечание: это формула массива; следовательно, клавиши Ctrl + Shift + End должны быть нажаты вместе

img4

Чтобы получить каждое седьмое значение ^ из диапазона A1: A100; мы изменим последний аргумент с 10 на 7 и формула будет \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}

img5

Таким образом, мы можем вернуть каждый n-й элемент с одного листа на мастер-лист.

Формула на другом листе будет содержать ссылку на лист \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}

img6

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

image 48

Если вам понравились наши блоги, поделитесь ими с друзьями на Facebook. А также вы можете подписаться на нас в Twitter и Facebook. Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить, дополнить или усовершенствовать нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]