특정 조건 만족하는 텍스트 합치기
2019지원 버전 자세히 보기
조건에 맞는 텍스트를 구분자로 합치는 공식입니다.
인수 설명
01단일 조건
=TEXTJOIN ( 구분자, TRUE, IF ( 조건범위=조건, 텍스트범위, "" ) )인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
동작 원리
IF 함수는 조건에 맞는 텍스트와 빈 문자열로 배열을 만들고 TEXTJOIN 함수는 빈 문자열을 제외한 값만 연결합니다.
단일 조건 공식의 예제 시트에서 H2 셀이 사과+포도+딸기를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
IF 함수가 조건에 맞는 텍스트를 남깁니다
A2:A8에서 과일인 행은 사과·포도·딸기를 반환하고 나머지 행은 빈 문자열을 반환합니다. Excel 2019에서는 이 배열 계산을 Ctrl+Shift+Enter로 확정해야 합니다.
=IF ( A2:A8=F3, C2:C8, "" )
= {"사과";"";"";"포도";"딸기";"";""}
A2:A8의 각 행에 대응하는 텍스트 배열입니다. TEXTJOIN 함수가 남은 텍스트를 연결합니다
두 번째 인수 TRUE가 빈 문자열을 제외하고 F2 셀의 +를 각 텍스트 사이에 넣습니다.
=TEXTJOIN ( F2, TRUE, IF ( A2:A8=F3, C2:C8, "" ) )
= "사과+포도+딸기"
조건을 만족하는 세 제품을 연결한 결과입니다. 02다중 AND 조건
=TEXTJOIN ( 구분자, TRUE, IF ( ( 조건범위1=조건1 )*( 조건범위2=조건2 ), 텍스트범위, "" ) )인수 설명 자세히 보기
동작 원리
두 조건 비교 결과를 곱해 모두 참인 행만 1로 만들고 IF 함수와 TEXTJOIN 함수가 해당 텍스트를 연결합니다.
다중 AND 조건 공식의 예제 시트에서 H3 셀이 사과+딸기를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
두 조건 배열을 곱합니다
분류가 과일인 결과와 지역이 서울인 결과를 곱하면 두 조건을 모두 만족하는 첫째·다섯째 행만 1이 됩니다.
=( A2:A8=F3 )*( B2:B8=F4 )
= {1;0;0;0;1;0;0}
두 조건을 모두 만족하는 행만 1인 배열입니다. IF 함수가 두 제품만 남깁니다
조건 배열이 1인 행에서는 제품명을 반환하고 나머지 행에서는 빈 문자열을 반환합니다. Excel 2019에서는 이 배열 계산을 Ctrl+Shift+Enter로 확정해야 합니다.
=IF ( ( A2:A8=F3 )*( B2:B8=F4 ), C2:C8, "" )
= {"사과";"";"";"";"딸기";"";""}
AND 조건을 만족하는 제품 배열입니다. TEXTJOIN 함수가 제품명을 연결합니다
빈 문자열을 제외하고 사과와 딸기 사이에 +를 넣어 하나의 텍스트로 반환합니다.
=TEXTJOIN ( F2, TRUE, IF ( ( A2:A8=F3 )*( B2:B8=F4 ), C2:C8, "" ) )
= "사과+딸기"
두 조건을 모두 만족하는 제품을 연결한 결과입니다. 03다중 OR 조건
=TEXTJOIN ( 구분자, TRUE, IF ( ( 조건범위1=조건1 )+( 조건범위2=조건2 ), 텍스트범위, "" ) )인수 설명 자세히 보기
동작 원리
두 조건 비교 결과를 더해 하나 이상 참인 행을 찾고 IF 함수와 TEXTJOIN 함수가 해당 텍스트를 연결합니다.
다중 OR 조건 공식의 예제 시트에서 H4 셀이 사과+배추+포도+딸기+콜라를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
두 조건 배열을 더합니다
분류가 과일인 결과와 지역이 부산인 결과를 더합니다. 두 조건을 모두 만족하는 포도 행은 2가 되며 1과 2는 모두 참으로 처리됩니다.
=( A2:A8=F3 )+( B2:B8=F5 )
= {1;1;0;2;1;0;1}
두 조건 중 하나 이상을 만족하는 행이 1 이상인 배열입니다. IF 함수가 다섯 제품을 남깁니다
조건 배열이 1 이상인 행에서는 제품명을 반환하고 나머지 행에서는 빈 문자열을 반환합니다. Excel 2019에서는 이 배열 계산을 Ctrl+Shift+Enter로 확정해야 합니다.
=IF ( ( A2:A8=F3 )+( B2:B8=F5 ), C2:C8, "" )
= {"사과";"배추";"";"포도";"딸기";"";"콜라"}
OR 조건을 만족하는 제품 배열입니다. TEXTJOIN 함수가 제품명을 연결합니다
빈 문자열을 제외하고 다섯 제품 사이에 +를 넣어 하나의 텍스트로 반환합니다.
=TEXTJOIN ( F2, TRUE, IF ( ( A2:A8=F3 )+( B2:B8=F5 ), C2:C8, "" ) )
= "사과+배추+포도+딸기+콜라"
두 조건 중 하나 이상을 만족하는 제품을 연결한 결과입니다.
=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/