[257회 라이브 공지] 이번 주 라이브는 `3/4(수) 오후 8시` 에 진행합니다! 오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

엑셀 배열에서 특정 열 추출 :: Extract_Column 함수 사용법

배열에서 지정한 열의 데이터를 추출하는 Extract_Column 함수의 사용법 및 동작원리를 살펴봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2022. 03. 21. 21:02
URL 복사
메모 남기기 : (10)

엑셀 VBA 배열 특정 열 추출 :: Extract_Column 함수 사용법 정리

엑셀 Extract_Column 함수 목차 바로가기
요약

엑셀 Extract_Column 함수는 배열에서 지정한 열의 데이터를 추출하는 VBA 사용자 지정 함수입니다.

명령문 구문
= Extract_Column ( 배열, 열번호 )
사용된 인수 및 변수 알아보기
인수 설명
배열
[Variant]
특정 열을 추출할 배열입니다.
열번호
[Long]
배열에서 추출할 열의 열 번호입니다.

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.


상세 설명

엑셀 Extract_Column 함수는 배열에서 지정한 열의 데이터를 추출하는 사용자 지정 함수입니다. 본 함수는 2차원 배열에서만 사용 가능합니다.

Extract_Column 함수의 배열로 1차원배열 또는 3차원 이상 배열을 입력할 경우 9 런타임 오류, '아래첨자 사용이 잘못 되었습니다' 오류를 반환합니다.

VBA 런타임 오류 9 아래첨자 사용지 잘못되었습니다.
1차원/3차원 배열에서 사용시 런타임 오류를 반환합니다.
실전 사용 예제

배열 예제 ( 7 x 7 배열)

a 1
b 2
c 3
d 4
e 5
f 6
g 7
  1. 배열에서 첫번째 열 추출하기
    Array = Extact_Column(Array, 1)
  2. 배열에서 세번째 열 추출하기
    Array = Extract_Column(Array,3)

엑셀 VBA 배열 특정 열 추출, Extract_Column 명령문 동작원리

Extract_Column 명령문 전체 코드
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ Extract_Column 함수
'▶ 배열에서 지정한 열을 추출합니다.
'▶ 인수 설명
'_____________DB        : 특정 열을 추출할 배열입니다.
'_____________Col       : 배열에서 추출할 열의 열번호입니다.
'▶ 사용 예제
'Arr = Extract_Column(Arr, 3) '<- 3번째 열을 추출합니다.
'##############################################################
 
Function Extract_Column(DB As Variant, Col As Long) As Variant
 
Dim i As Long
Dim vArr As Variant
 
ReDim vArr(LBound(DB) To UBound(DB), 1 To 1)
For i = LBound(DB) To UBound(DB)
        vArr(i, 1) = DB(i, Col)
Next
 
Extract_Column = vArr
 
End Function
명령문 동작원리 단계별 알아보기
  1. 변수를 선언합니다.
    Dim i As Long
    Dim vArr As Variant
  2. 기존 배열의 크기와 동일한 높이를 가진 임시배열을 생성합니다.
    ReDim vArr(LBound(DB) To UBound(DB), 1 To 1)
  3. 기존 배열에서 지정한 열의 데이터를 임시 배열로 추출합니다.
    For i = LBound(DB) To UBound(DB)
    vArr(i, 1) = DB(i, Col)
    Next
  4. 임시 배열을 함수의 결과값으로 반환합니다.
    Extract_Column = vArr
댓글 10
5 (7개 평가)
의지
의지 2021.01.04 09:37
잘 봤습니다 감사합니다!
성실하게
성실하게 2021.01.07 23:35
잘봤습니다
낙타
낙타 2021.01.12 00:11
정말 유익하네요. 이런게 국익을 만들어 내는거라 생각합니더
얌얌히히
얌얌히히 2022.03.18 18:11
예제파일 다운로드가 보이지 않습니다 ㅠ...
오빠두엑셀
오빠두엑셀 작성자 2022.03.21 21:02
안녕하세요 파일이 누락되어 있었습니다. 이용에 불편을 드려 죄송합니다. 방금 파일을 새로 올려드렸으니 한번 확인해보시겠어요? 감사합니다.
Free soul
Free soul 2022.06.16 13:40
와우... 이거 사용자정의함수에 등록해서 써야겠어요. 감사합니다.
Free soul
Free soul 2022.06.16 18:07
아 안되네요. 배열은 셀 범위에 나타낼 수 없는지요?
ㅎㅎㅎㅇㄴㅁ
ㅎㅎㅎㅇㄴㅁ 2024.01.17 14:57
특정열을 1개가 아닌, 여러개가 추출하고 싶을때는 어떤식으로 응용하면 될까요?
오빠두엑셀
오빠두엑셀 작성자 2024.01.19 18:18
안녕하세요. ChatGPT를 통해 생성한 코드입니다. 아래 코드를 한번 사용해보시겠어요? DB = Extract_Columns(DB,"1,2,3") 과 같이 사용하면 됩니다.
Function Extract_Columns(DB As Range, ColString As String) As Variant
  Dim i As Long, j As Long, k As Long
  Dim colArray() As String
  Dim vArr As Variant
   
  ' Split the column string into an array
  colArray = Split(ColString, ",")
   
  ' Redimension the output array
  ReDim vArr(1 To DB.Rows.Count, 1 To UBound(colArray) + 1)
   
  ' Loop through each row
  For i = 1 To DB.Rows.Count
    ' Loop through each specified column
    For j = LBound(colArray) To UBound(colArray)
      ' Assign the value to the output array
      k = CInt(Trim(colArray(j))) ' Convert string to integer
      vArr(i, j + 1) = DB.Cells(i, k).Value
    Next j
  Next i

  ' Return the array
  Extract_Columns = vArr
End Function
강민준🤗
강민준🤗 2024.08.11 12:09
좋은 자료 감사합니다.🙇‍♂️