_ 누군가가 열의 모든 n 번째 항목을 어떻게 찾을 수 있는지 궁금한 경우. 이 기사에서는 목록에서 모든 n 번째 항목을 반환하는 방법을 배웁니다. 결과를 찾기 위해 VBA 코드를 사용할 것입니다 ._

질문 : 열에서 모든 n 번째 값을 추출하는 매크로 코드를 원합니다. 한 시트 / 열에서 다른 시트 / 열로 값을 가져 오려고합니다. OFFSET과 같은 많은 함수를 사용해 보았지만 결과를 얻을 수있는 공식을 알아낼 수 없었습니다.

A 열의 100 개 값의 예를 들어 보겠습니다. B 열의 10 ^ th ^ 값마다 찾기를 원합니다. 샘플 값은 1과 같은 A1 셀에서 100과 같은 A100 셀까지 시작됩니다. 다음은 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

B1 : B10 범위의 모든 n 번째 항목을 가져 오려면 수식은 \ {= INDEXN ($ A $ 1 : $ A $ 100, 10)}입니다. 참고 : 이것은 배열 수식입니다. 따라서 Ctrl + Shift + End 키를 함께 눌러야합니다

img4

범위 A1 : A100에서 모든 7 ^ th ^ 값을 얻으려면; 마지막 인수를 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]_로 문의 해주세요