엑셀에서 다음과 같이 고객명이 동일한 조건을 만족하는 주문상품명 텍스트를 합쳐야 할 때 TEXJOIN 함수와 배열 수식을 조합해서 많이 사용했는데 FILTER, UNIQUE 함수(동적 배열 함수)를 쓰면 아주 간단하게 해결할 수 있습니다.
기존의 어려운 배열 수식은 몰라도 되도록 엑셀이 점점 좋아지고 있습니다.
※ 예제 이해에 필요한 내용은 다음 링크를 참고하세요.
[ TEXTJOIN 함수 – 기호로 구분하여 텍스트 합치기 ] Excel 2019 버전부터 사용가능
[ FILTER 함수 - 원하는 조건으로 데이터 조회(필터링)하기 ] Microsoft 365, Excel 2021 버전부터 사용가능
[ UNIQUE 함수 - 중복 제거하기 ] Microsoft 365, Excel 2021 버전부터 사용가능
[ 엑셀의 새로운 기능, 동적 배열 수식 ] Microsoft 365, Excel 2021 버전부터 사용가능
1. 조건을 만족하는 주문상품명 합치기
1) 고객명이 동일한 주문상품명 합치기
다음과 같이 TEXTJOIN, FILTER 함수를 사용하면 고객명이 동일한 조건을 만족하는 주문상품명 텍스트를 합칠 수 있습니다.
=TEXTJOIN(",",TRUE,FILTER($C$6:$C$14,$B$6:$B$14=B19))
고객명이 동일한 주문상품명 텍스트가 하나의 셀에 합쳐짐
수식 작동 순서 :
- FILTER함수로 조건을 만족하는(고객명이 "정우혁") 테이터를 가져오고
- TEXTJOIN함수로 주문상품명 텍스트를 합쳐줍니다.
2) 고객명이 동일한 주문상품명 중복제거하고 합치기
앞의 예제는 주문상품명이 동일하면 중복으로 표시되는 문제가 있습니다.
(딸기 주문이 2건이므로 '딸기'를 두번 표시함)
중복을 제거해야 할 경우에는 중복을 제거해 주는 UNIQUE 함수를 추가해 주면 됩니다.
=TEXTJOIN(",",TRUE,UNIQUE(FILTER($C$6:$C$14,$B$6:$B$14=B19)))
주문상품명이 동일하면 중복이 제거되고 텍스트가 하나의 셀에 합쳐졌습니다.
수식 작동 순서 :
- FILTER함수로 조건을 만족하는(고객명이 "정우혁") 테이터를 가져오고,
- UNQUE 함수로 상품명 중복을 제거하고
- TEXTJOIN함수로 주문상품명 텍스트를 합쳐줍니다.
2. 엑셀 2019이하 버전에서 배열수식 사용하여 병합
아쉽지만 엑셀 2019이하 버전에서는 앞에서 사용한 동적 배열 함수(UNIQUE, FILTER)를 사용할 수 없습니다.
대신 다음과 같이 배열 수식을 사용하여 해결할 수 있습니다. 배열 수식이므로 수식을 입력한 후 [Ctrl + Shift +Enter]를 눌러야 합니다.
단 상품명 중복은 제거할 수 없는 한계가 있습니다.
=TEXTJOIN(",",TRUE,IF(($B$6:$B$14=B26),$C$6:$C$14,""))
수식 작동 순서 :
- IF를 사용한 배열수식으로 조건을 만족하는(고객명이 "정우혁") 테이터를 가져오고,
- TEXTJOIN함수로 주문상품명 텍스트를 합쳐줍니다.
감사합니다~!