Excel

엑셀 Vstack, Hstack 함수

별동산 2023. 5. 22. 08:21
반응형

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

 

반응형