특정 조건 만족하는 텍스트 합치기 공식
특정 조건 만족하는 텍스트 합치기 목차 바로가기
함수 공식
=TEXTJOIN(구분자,TRUE,IF(조건범위=조건,텍스트범위,""))
인수 설명

| 인수 | 설명 |
| 구분자 | 텍스트를 병합할 구분자입니다. (예: "," 또는 공백 등..) |
| 조건범위 | 텍스트를 합치기 위해 평가할 조건 범위입니다. |
| 조건 | 평가할 조건입니다. |
| 텍스트범위 | 조건을 만족할 경우에 병합 될 텍스트가 입력된 범위입니다. |
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀공식] 특정 조건을 만족하는 텍스트 합치기예제파일
호환성
운영체제 호환성 Windows 버전 엑셀 2019 이후 또는 Microsoft 365 버전에서 사용 가능합니다. Mac 버전 Mac 용 엑셀 2019 이후 또는 Microsoft 365 버전에서 사용 가능합니다. 사용된 기초 함수
특정 조건 만족하는 텍스트 병합 공식 알아보기
공식 설명
특정 조건을 만족할 경우에 지정한 범위의 텍스트를 합치는 공식입니다. 본 공식은 TEXTJOIN 함수가 사용되므로 엑셀 2019 이후 버전 또는 Microsoft 365 사용자만 사용가능합니다. 엑셀 2016 이전 버전 사용자는 TEXTJOIN 추가기능을 설치하거나 사용자지정함수를 직접 지정하여 사용할 수 있습니다.
IF 함수의 논리식을 변경하여 여러개의 조건을 만족하는 텍스트를 합치는 공식으로도 손쉽게 응용할 수 있습니다.
공식의 동작원리
- IF 함수로 특정 조건을 만족하는 경우의 텍스트를 배열로 반환합니다.
=IF({과일,야채,음료,과일,과일,야채,야채,음료}="과일",{사과,배추,물,포도,딸기,상추,피망,콜라},"")
={사과,,,포도,딸기,,,} - TEXTJOIN 함수를 사용하여 배열 내 빈칸을 제외한 값을 구분자로 병합합니다.
=TEXTJOIN("+",TRUE,{사과,,,포도,딸기,,,})
="사과+포도+딸기" '구분자(+)로 구분하여 텍스트를 병합합니다.
자주묻는질문
자주묻는질문1. 여러개의 조건을 만족하는 경우는 어떻게 구하나요?
IF 함수의 논리식을 변경하면 다양한 조건을 만족하는 경우의 텍스트를 합칠 수도 있습니다. 조건의 곱셈은 AND 조건으로, 조건의 덧셈은 OR 조건으로 계산됩니다.
- 모든 조건을 만족하는 경우 (AND 조건)
=TEXTJOIN(구분자,TRUE,IF((조건범위1=조건1)*(조건범위2=조건2),텍스트범위,""))
'첫번째 조건과 두번째 조건을 모두 만족하는 경우의 텍스트를 합칩니다.
예) =TEXTJOIN(구분자,TRUE,IF((항목범위="과일")*(제품범위="사과"),텍스트범위,""))
'항목범위의 값이 '과일'이고, 제품범위의 값이 '사과'인 경우의 텍스트를 합칩니다. - 둘 중에 하나라도 만족하는 경우 (OR 조건)
=TEXTJOIN(구분자,TRUE,IF((조건범위1=조건1)+(조건범위2=조건2),텍스트범위,""))
'첫번째 조건을 만족하거나 두번째 조건을 만족하는 경우의 텍스트를 합칩니다.
예) =TEXTJOIN(구분자,TRUE,IF((항목범위="과일")+(항목범위="야채"),텍스트범위,""))
'항목범위의 과일이거나 야채일경우의 텍스트를 모두 합칩니다.
- IF 함수로 특정 조건을 만족하는 경우의 텍스트를 배열로 반환합니다.

=IF({과일,야채,음료,과일,과일,야채,야채,음료}="과일","",{사과,배추,물,포도,딸기,상추,피망,콜라}) 에서 true 값이랑 false값이 바뀐거 같은데 확인 부탁드립니다 :)
방금 수정하였습니다. :) 확인해주셔서 대단히 감사드립니다.
사이트 설명에는 이렇게 나와 있는데요.
이렇게 하니 원하는 결과가 안 나와요.
그래서 예제파일을 자세히 들여다 보니 배열 수식으로 돼 있는데 {=TEXTJOIN(",",TRUE,IF(B8:B18=E8,C8:C18,""))}
원래 배열수식으로 지정해줘야는 게 맞는 건가요?
참고로 엑셀 2019버전 사용 중입니다.
배열수식 지정이 맞다면 아래에 알려주신 1, 2번의 경우도 그래야 겠죠?
그렇지 않을경우 엑셀이 B8:B18=E8이 아니 B8=E8로 인식을 해서 원하는 값이 나오지 않습니다.
서로 떨어져 있는 셀의 내용을 합치시려면 각 셀을 하나씩 선택해서 함수를 입력해보세요.
=TEXTJOIN(",",TRUE,셀1,셀2,셀3,셀4..)
사진처럼 제품에 공백이 있을경우
0, 0,0, 들어가는데 없에고
사과,딸기 요렇게만 표현 할순 없을까요?
로 수식을 수정해서 사용해보세요.
구글 서칭을 하니 VB를 사용해서 해결하는 방법은 있던데, 함수를 사용하여 한 셀 안에 중복텍스트 처리하는 것은 불가능한지 궁금합니다.
M365 또는 2021 버전을 사용중이시라면 UNIQUE 함수를 사용해보세요
https://www.oppadu.com/%ec%97%91%ec%85%80-unique-%ed%95%a8%ec%88%98/
만약 이전 버전을 사용 중이시라면 아래 공식을 활용해보세요.
https://www.oppadu.com/%ec%97%91%ec%85%80-%ec%a4%91%eb%b3%b5%ea%b0%92-%ec%a0%9c%ea%b1%b0-%ed%95%a8%ec%88%98-%ea%b3%b5%ec%8b%9d/
- 출석율 : 95.5%
- 등급 : A
"출석율이 100%이므로, 근태 A등급입니다."위 처럼 텍스트를 합치고 싶은데, 자꾸 출석율이 95.55665 숫자로 나옵니다. 방법 없을까요?
아래 함수를 사용해보세요
"출석율이 " & Text(셀,"0.0%") & "이므로, 근태 A등급입니다."
너무 복잡하게 생각했나봅니다. 역시 "오빠두엑셀!"
Ctrl + Shift + Enter로 입력해보시겠어요?
감사합니다.
표 2번 값을 원하는데.. 추가기능 사용하면 1번 값이 나옵니다
해결방법 부탁드립니다.
참고. 2019 버전은 동일한 수식 적용시 2번 값이 나옵니다
버전마다 다르게 동작하는 것은
사용하고 계신 VBA 코드를 디버깅해봐야 알 수 있을 듯 합니다.
https://www.oppadu.com/vba-textjoin-%ED%95%A8%EC%88%98/
위 링크를 클릭하시면 추가기능에 사용된 VBA 코드 전문을 확인하실 수 있습니다. 코드를 참고하여 어느 부분에서 문제가 발생하는지 확인 후 한번 수정해보시겠어요? :)
감사합니다.
조건에 맞는 셀만 합산 되는것이아니라 모든셀(조건을 만족하지않는 셀)의 텍스트가 더해집니다.ㅠㅠ
예)과일 조건을 만족하는 데이터만 합산하고 싶은데
야채 데이터까지 같이 합산됩니다..
VBA로 TEXTJOIN 함수를 작성해서 사용할 경우, 함수가 잘 작성되었는지 직접 디버깅 후 사용해보시면 좋을 것 같습니다^^
아래 링크에 적어드린 TEXTJOIN 함수를 추가 후 사용해보세요.
https://www.oppadu.com/vba-textjoin-%ED%95%A8%EC%88%98/