Microsoft Excel에서 VBA를 사용하여 매 n 번째 항목을 반환
_ 누군가가 열의 모든 n 번째 항목을 어떻게 찾을 수 있는지 궁금한 경우. 이 기사에서는 목록에서 모든 n 번째 항목을 반환하는 방법을 배웁니다. 결과를 찾기 위해 VBA 코드를 사용할 것입니다 ._
질문 : 열에서 모든 n 번째 값을 추출하는 매크로 코드를 원합니다. 한 시트 / 열에서 다른 시트 / 열로 값을 가져 오려고합니다. OFFSET과 같은 많은 함수를 사용해 보았지만 결과를 얻을 수있는 공식을 알아낼 수 없었습니다.
A 열의 100 개 값의 예를 들어 보겠습니다. B 열의 10 ^ th ^ 값마다 찾기를 원합니다. 샘플 값은 1과 같은 A1 셀에서 100과 같은 A100 셀까지 시작됩니다. 다음은 A 열의 데이터 스냅 샷입니다.
결과를 얻으려면 아래 단계에 따라 VB 편집기를 시작해야합니다. 개발자 탭을 클릭합니다. 코드 그룹에서 Visual Basic을 선택합니다.
-
표준 모듈에 아래 코드 복사
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
B1 : B10 범위의 모든 n 번째 항목을 가져 오려면 수식은 \ {= INDEXN ($ A $ 1 : $ A $ 100, 10)}입니다. 참고 : 이것은 배열 수식입니다. 따라서 Ctrl + Shift + End 키를 함께 눌러야합니다
범위 A1 : A100에서 모든 7 ^ th ^ 값을 얻으려면; 마지막 인수를 10에서 7로 변경하고 수식은 \ {= INDEXN ($ A $ 1 : $ A $ 100, 7)}
이런 식으로 한 시트에서 마스터 시트로 모든 n 번째 항목을 반환 할 수 있습니다.
다른 시트의 수식에는 시트 참조 \ {= INDEXN (Sheet1! $ A $ 1 : $ A $ 100, 10)}
결론 : 위의 사용자 정의 함수의 도움으로 우리는 한 시트에서 다른 시트로 모든 n 번째 항목을 찾을 수있는 유연성을 가질 수 있습니다.
_ 블로그가 마음에 들면 Facebook에서 친구들과 공유하세요. 또한 Twitter와 Facebook에서 우리를 팔로우 할 수 있습니다. 우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 여러분을 위해 개선 할 수있는 방법을 알려주십시오. [email protected]_로 문의 해주세요