엑셀 VSTACK 함수는 여러 범위를 세로로 결합하여 하나의 큰 배열을 생성하는 함수입니다.
=VSTACK(범위1, [범위2], ...)
- 인수는 최대 254개까지 지정할 수 있습니다.
- 각 인수로 결합된 범위의 행 개수가 1,048,576 개를 초과할 경우 #NUM! 오류를 반환합니다.
엑셀 VSTACK 함수는 여러 배열이나 범위를 세로 방향으로 결합하여 하나의 큰 배열을 만드는 함수입니다. 각 배열은 순서대로 아래에 추가되며, 원본 데이터가 바뀔 시 결과가 실시간으로 업데이트됩니다.
=VSTACK(A1:A10,B1:B10,C1:C10) / / A1:A1 + B1:B10 + C1:C10 을 세로로 합친 세로로 긴 범위를 반환합니다.
함수의 인수로는 시트 범위, 이름 범위, 수식으로 만든 배열을 모두 사용할 수 있습니다. 여러 개의 시트를 동시에 선택한 후, 3D 범위로 함수를 입력하면 여러 시트 데이터를 병합할 때 사용할 수 있습니다.
=VSTACK(CHOOSECOLS(A1:E100,2),CHOOSECOLS(A1:E100,3)) / / A1:E100 범위 중 2번째, 3번째 열을 세로로 결합합니다. =VSTACK('1월:3월'!A1:C100) / / 1월~3월 시트의 A1:100 범위를 세로로 결합합니다.
VSTACK과 비슷한 함수인 HSTACK 함수를 사용하면 가로 방향으로 배열을 결합할 수 있습니다.
아래와 같이 수식을 작성하면 여러 부서의 데이터를 하나로 합칠 수 있습니다.
=VSTACK(영업부!A2:B10, 마케팅부!A2:B10, 인사부!A2:B10) / / 영업, 마케팅, 인사부 시트의 A2:B10 에 작성된 직원 목록을 결합합니다
다음과 같이 수식을 작성하면, 1월~12월까지 연속된 시트의 A1:D100 범위가 하나로 병합됩니다.
=VSTACK('1월:12월'!A1:D100) / / 1월~12월 시트의 A1:D100 범위를 하나로 결합합니다.
LET 함수와 FILTER 함수를 함께 활용하면, 결합된 범위에서 빈 셀은 제외하고 값이 있는 셀만 출력할 수 있습니다.
=LET(arr,VSTACK('1월:12월'!A1:D100),FILTER(arr,CHOOSECOLS(arr,1)<>"")) / / 1월~12월 시트의 A1:D100 범위를 결합한 후, 빈 셀은 제외하고 값이 있는 셀만 출력합니다.
다음과 같이 VSTACK 함수에 배열을 직접 입력하여, 결합된 범위의 머리글을 설정할 수 있습니다.
=VSTACK({"부서,이름"},영업부!A2:B10, 마케팅부!A2:B10, 인사부!A2:B10) / / 각 부서의 명단을 합친 범위 위로 "부서", "이름" 머리글을 추가합니다.
결합하는 범위의 열 개수가 다를 경우, 가장 큰 배열의 크기에 맞춰서 결합됩니다. 이때 확장된 부분은 #N/A 오류로 채워집니다.
IFERROR 함수를 사용하면 확장된 부분에 표시되는 #N/A 오류를 빈 셀이나 다른 값으로 대체할 수 있습니다.
VSTACK 함수로 결합된 범위의 행 개수가 엑셀에서 최대로 처리 가능한 행 개수인 1,048,576 개를 초과할 경우, 함수는 #NUM! 오류를 반환합니다.