티스토리 뷰

반응형

개인적으로는 엑셀보다는 SQL 쿼리문이 더 익숙하다. 그래서 검색어를 뭐로해야 하나 한참 헤멨는데 결국 해결방법을 찾았다.

쉽게 생각해서 동일한 포맷의 데이터를 하나로 합쳐야 할때가 종종 필요한데 이것을 하는 방법이다.

결론부터 말하면 VSTACK 함수를 써서 합칠수 있고, 중복된건 UNIQUE 함수를 쓰면 해결가능하다.

엑셀에서 UNION , UNION ALL 을 유사하게 표현할 수 있다

VSTACK = UNION ALL

SQL 에서는 UNION ALL 로 2개의 테이블을 하나로 묶어서 조회하는게 가능하다.

그럼 엑셀에서는 어떻게 사용하면 될까? VSTACK 함수를 사용하면 된다. 기본 사용법은 아래와 같고 수식 차체가 어려운것도 없다.

 

=VSTACK(시트범위, 시트범위2, ... , 시트범위N)

이해를 돕기위해 예시를 들어 설명한다면 아래와 같다 (아래 이미지 참조)

덤으로 & "" 를 뒤에 붙여준 이유는 데이터 없는 케이스는 0 으로 결과가 노출되는데 이걸 빈문자열로 노출되게 하기위한 트릭이다.

VSTACK 을 쓰면 쿼리문에서 UNION ALL 을 쓴것과 같은 효과를 준다

VSTACK + UNIQUE = UNION

그럼 데이터를 합치고 중복까지 제거하려면 어떻게 해야할까? 중복제거는 UNIQUE 함수가 존재한다.

인자값은 다양하게 지원되지만, 생략하고 디폴트값으로 써도 이런케이스에서는 문제가 없다.

=UNIQUE(VSTACK(시트범위, 시트범위2, ... , 시트범위N))

실제 예제로 보면, VSTACK 만 사용했을때는 홍길동이 2건이었는데, UNIQUE 를 같이 쓰면 중복데이터가 사라졌다.

VSTACK + UNIQUE 를 같이 쓰면 쿼리문의 UNION 과 같은 결과를 유도할 수 있다

마무리

vstack 과 unique 함수에 대한 더 상세한 설명은 아래 사이트를 참고하도록 하자.

개인적으로는 sql 이 더 익숙한 사람을 위해 쿼리문을 엑셀로 표현하는 예제를 종종 올려보도록 해야겠다.

 

https://support.microsoft.com/ko-kr/office/vstack-%ED%95%A8%EC%88%98-a4b86897-be0f-48fc-adca-fcc10d795a9c

 

VSTACK 함수 - Microsoft 지원

3개의 배열을 순서대로 세로로 추가하여 빈 배열 요소를 채우기 위한 #N/A 오류가 있는 3개의 열과 6개의 행으로 구성된 배열 하나가 되도록 합니다. 데이터 1 2 A B C #VALUE! 3 4 D E F 5 6 수식 =VSTACK(A2:B

support.microsoft.com

https://support.microsoft.com/ko-kr/office/unique-%ED%95%A8%EC%88%98-c5ab87fd-30a3-4ce9-9d1a-40204fb85e1e

 

UNIQUE 함수 - Microsoft 지원

=UNIQUE(array,[by_col],[exactly_once]) UNIQUE 함수에는 다음과 같은 인수가 있습니다. 인수 설명 array 필수 고유한 행 또는 열을 반환할 범위 또는 배열 [by_col] 선택 사항 by_col 인수는 비교 방법을 나타내는

support.microsoft.com

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함