1. 의미
Vstack 함수는 배열을 세로로 추가해 주는 함수이며,
Hstack 함수는 배열을 가로로 추가해 주는 함수입니다.
Microsoft 365용 Excel, Mac용 Microsoft 365용 Excel, 웹용 Excel에서만 사용가능한 함수입니다.
웹 용 Excel에서 지원한다는 것이 대단합니다.
2. 구문
=VSTACK(array1,[array2],...)
※ 최대 열 길이에 미달하는 행이 있으면 #N/A! 오류로 채워지므로, IfError 함수를 함께 사용해야 합니다.
=HSTACK(array1,[array2],...)
※ 최대 행 길이에 미달하는 열이 있으면 #N/A! 오류로 채워지므로, IfError 함수를 함께 사용해야 합니다.
3. 사용 예
가. Vstack 함수
(1) 열 길이가 같은 경우
㉮ 머리글을 포함해 데이터를 세로로 추가하는 경우
아래와 같이 왼쪽과 오른쪽의 데이터가 모두 3 열인 경우
오른쪽의 데이터를 아래에 붙여 넣으려고 하면
i1셀에 =VSTACK(A1:C4,E2:G7) 이라고 수식을 입력해서
왼쪽 데이터에서는 머리글을 포함해 범위를 지정하고, 오른쪽 데이터에서는 머리글은 빼고 범위를 지정해야 머리글이 중복되는 문제를 피할 수 있습니다.
배열 표시인 파란색 외곽선이 1행부터 10행까지 표시되고 있으며,
Vstack함수를 사용하는 경우 날짜가 숫자로 표시되므로 간단한 날짜 형식으로 바꿔야 합니다.
㉯ 머리글을 제외하고 세로로 추가하는 경우
머리글을 복사해서 붙여 넣고 데이터 영역만 세로로 쌓을 수 있습니다.
먼저 A1셀에서 C1셀의 머리글을 복사해서 M1셀에 붙여 넣습니다.
그리고, M2셀에 =VSTACK(A2:C4,E2:G7)라고, 머리글을 뺀 영역만 지정할 수도 있습니다.
이 때는 배열 표시인 파란색 외곽선이 1행에는 없고, 2행부터 10까지만 있습니다.
㉰ 중간에 데이터가 없는 경우
좌우 데이터의 열 길이는 똑같은데, 중간에 데이터가 없을 경우
=VSTACK(A12:C15,E13:G15) 라고, 왼쪽 테이블에서는 머리글을 포함해서 범위를 지정하고, 오른쪽 테이블에서는 머리글을 제외하고 범위를 지정하면 오류 표시는 없는데, 데이터가 없는 부분이 0으로 표시됩니다.
(2) 열 길이가 다른 경우
왼쪽은 2 열이고, 오른쪽은 3 열일 경우 세로로 쌓기 위해
=VSTACK(A20:B23,E21:G23) 이라고 입력하면 열이 없는 부분이 #N/A(값을 찾을 수 없음) 오류가 발생합니다.
이 때는 오류를 처리하기 위해 Iferror함수를 사용하면 에러일 때 값을 ""(빈 셀)로 지정하면
빈 열 부분이 모두 빈센로 표시됩니다. 이것이 데이터가 없는 경우 0으로 표시되는 것과 다른 점입니다.
(3) 데이터가 없지만 열 크기를 같게 지정할 경우
위와 같이 왼쪽은 2 열이고, 오른쪽은 3열이라도 배열의 범위를 모두 3열로 지정해서
=VSTACK(A20:C23,E21:G23) 라고 수식을 입력하면
판매량이라는 머리글이 표시되지 않지만, 오류는 발생하지 않고, 0으로 표시됩니다.
만약 왼쪽 표에 판매량이라는 머리글이 있다면 문제없이 N20셀에 판매량이 표시될 것입니다.
나. Hstack 함수
(1) 행 수가 같은 경우
아래와 같이 왼쪽, 오른쪽 모두 5행인 경우
i1셀에 =HSTACK(A1:C5,F1:G5) 라고, 왼쪽에서는 성명인 A열을 포함해서 범위를 지정하고, 오른쪽에서는 성명이 중복되므로 E열을 제외하고 F열부터 지정합니다.
그러면, 아래와 같이 성명별 나이, 출생지에 성별과 출신이 오른쪽에 추가됩니다.
(2) 행 수가 다른 경우
왼쪽은 5행이고, 오른쪽은 4행인 경우
=HSTACK(A9:C13,E9:G12)
이라고, 좌, 우 성명이 일치되게 표시되는지 확인하기 위해 오른쪽 표도 성명인 E열을 포함해 범위를 지정하면
홍길동 줄에 임꺽정이 표시되는 등 짝이 안 맞습니다.
따라서, Hstack함수를 사용할 때는 행의 위치를 지정하던가
파워 쿼리 등 다른 방법을 사용하는 것이 바람직하겠습니다.
Vstack도 열의 위치가 다르다면 동일한 문제가 발생합니다.
'Excel' 카테고리의 다른 글
조건부 서식 - 둘 이상 조건에 맞는 줄에 색칠하기 (0) | 2023.05.25 |
---|---|
쿼리 추가(Vstack 기능)와 병합(Hstack 기능) (0) | 2023.05.23 |
엑셀 Filter 함수 (0) | 2023.05.19 |
Unique 함수와 데이터 유효성 검사의 문제점 (2) | 2023.05.17 |
ArraytoText 함수 - 배열을 문자열로 반환하는 함수 (0) | 2023.05.12 |