엑셀 셀에서 영문자만 추출 공식
2019지원 버전 자세히 보기
셀에서 한글·숫자·기호를 제외하고 영문자(a-z, A-Z)만 추출하는 공식입니다.
인수 설명
01TEXTJOIN 함수 공식 (엑셀 2019 이상)
{=TEXTJOIN ( "",, IFERROR ( MID ( 셀, ISNUMBER ( FIND ( MID ( 셀, ROW ( INDIRECT ( "1:"&LEN ( 셀 ) ) ), 1 ), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ) * ROW ( INDIRECT ( "1:"&LEN ( 셀 ) ) ), 1 ), "" ) )}인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
02REGEXREPLACE 함수 공식 (M365)
=REGEXREPLACE ( 셀, "[^A-Za-z]", "" )인수 설명 자세히 보기
동작 원리
01TEXTJOIN 함수 공식 (엑셀 2019 이상)
FIND 함수로 각 문자가 영문자 목록에 있는지 확인하고, TEXTJOIN 함수로 일치하는 문자만 순서대로 연결합니다.
엑셀 2019 이상 공식의 예제 시트에서 D2 셀이 "AB"를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
ROW 함수가 문자 위치 순번을 만듭니다
LEN 함수는 B2 셀의 글자 수 4를 계산하고, INDIRECT 함수와 ROW 함수는 1부터 4까지의 세로 배열을 만듭니다.
=ROW ( INDIRECT ( "1:"&LEN ( B2 ) ) )
= {1;2;3;4}
B2 셀의 각 문자 위치입니다. MID 함수가 문자를 한 글자씩 나눕니다
MID 함수는 위치 순번을 시작 위치로 사용해 B2 셀의 문자를 한 글자씩 분리합니다.
=MID ( B2, ROW ( INDIRECT ( "1:"&LEN ( B2 ) ) ), 1 )
= {"가";"A";"B";"나"}
B2 셀을 한 글자씩 나눈 세로 배열입니다. FIND 함수가 영문자 위치만 남깁니다
FIND 함수는 각 문자를 영문자 목록에서 대소문자를 구분해 찾습니다. ISNUMBER 함수가 일치 여부를 판정한 뒤 순번을 곱해 영문자가 있는 위치만 남깁니다.
=ISNUMBER ( FIND ( MID ( B2, ROW ( INDIRECT ( "1:"&LEN ( B2 ) ) ), 1 ), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ) * ROW ( INDIRECT ( "1:"&LEN ( B2 ) ) )
= {0;2;3;0}
영문자 A와 B가 있는 2번째와 3번째 위치만 남습니다. IFERROR 함수와 TEXTJOIN 함수가 결과를 합칩니다
MID 함수는 2번째와 3번째 문자인 A와 B를 반환하고, 0번째 위치의 오류는 IFERROR 함수가 빈 문자열로 바꿉니다. TEXTJOIN 함수는 남은 두 문자를 순서대로 연결합니다.
{=TEXTJOIN ( "",, IFERROR ( MID ( B2, ISNUMBER ( FIND ( MID ( B2, ROW ( INDIRECT ( "1:"&LEN ( B2 ) ) ), 1 ), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ) * ROW ( INDIRECT ( "1:"&LEN ( B2 ) ) ), 1 ), "" ) )}
= "AB"
영문자 A와 B만 연결한 결과입니다.
댓글만으로는 원인 확인이 어렵고 실제 사용하신 값이나 예제파일을 함께 올려주셔야 답변 드릴 수 있을 듯 합니다.
홈페이지 Q&A 커뮤니티를 통해 다시 글을 올려주시겠어요?^^
감사합니다.
함수에 들어가는 인수의 개수를 초과해서 입력해서 그렇습니다.
게시글에 함께 올려드린 예제파일을 참고하셔서 수식을 다시 작성해보세요.
TEXTJOIN 함수는 엑셀 2019 이후 버전에서만 제공됩니다.
따라서 엑셀 2016 이전 버전을 사용중이실경우,
#NAME? 오류가 발생합니다. :) 감사합니다.
한글만 추출하는 작업은 함수만으로는 불가능하고 VBA 코드나 정규표현식을 사용해야만 가능합니다.
자세한 내용은 아래 Q&A 커뮤니티 글을 한번 확인해보시겠어요?
https://www.oppadu.com/question/?mod=document&uid=48717
감사합니다.