본문 바로가기
Excel

엑셀 Vstack, Hstack 함수

by 별동산 2023. 5. 22.
반응형

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과 hstack 함수.xlsx
0.01MB

 

 

가. Vstack 함수

 

(1) 열 길이가 같은 경우

 

㉮ 머리글을 포함해 데이터를 세로로 추가하는 경우

아래와 같이 왼쪽과 오른쪽의 데이터가 모두 3 열인 경우

 

오른쪽의 데이터를 아래에 붙여 넣으려고 하면 

i1셀에 =VSTACK(A1:C4,E2:G7) 이라고 수식을 입력해서

왼쪽 데이터에서는 머리글을 포함해 범위를 지정하고, 오른쪽 데이터에서는 머리글은 빼고 범위를 지정해야 머리글이 중복되는 문제를 피할 수 있습니다.

 

배열 표시인 파란색 외곽선이 1행부터 10행까지 표시되고 있으며,

Vstack함수를 사용하는 경우 날짜가 숫자로 표시되므로 간단한 날짜 형식으로 바꿔야 합니다.

 

㉯ 머리글을 제외하고 세로로 추가하는 경우

머리글을 복사해서 붙여 넣고 데이터 영역만 세로로 쌓을 수 있습니다.

먼저 A1셀에서 C1셀의 머리글을 복사해서 M1셀에 붙여 넣습니다.

그리고, M2셀에 =VSTACK(A2:C4,E2:G7)라고, 머리글을 뺀 영역만 지정할 수도 있습니다.

수식이 M1셀에 있는데 셀 포인터가 M2셀에 있기 때문에 수식이 흐리게 표시됩니다.

 

이 때는 배열 표시인 파란색 외곽선이 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도 열의 위치가 다르다면 동일한 문제가 발생합니다.

판매량이 다르게 연결돼서 표시되는 문제점이 있습니다.

 

vstack과 hstack 함수(완성).xlsx
0.01MB

 

반응형