엑셀 셀에서 영문자만 추출 공식
2019지원 버전 자세히 보기
엑셀 2019엑셀 2021엑셀 2024M365웹 엑셀
셀에서 한글·숫자·기호를 제외하는 영문자 추출 공식입니다.
인수 설명
01Excel 2019 이상 공식
{=TEXTJOIN ( "",, IFERROR ( MID ( 셀, ISNUMBER ( FIND ( MID ( 셀, ROW ( INDIRECT ( "1:"&LEN ( 셀 ) ) ), 1 ), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ) * ROW ( INDIRECT ( "1:"&LEN ( 셀 ) ) ), 1 ), "" ) )}인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
인수구분설명
셀필수영문자만 추출할 문자열이 입력된 셀입니다.
A
B
C
D
E
1
번호
원문
영문자만 추출
2
1
가AB나
AB
3
2
Excel 함수 365
Excel
4
3
A-1_B?2
AB
5
4
서울KOREA2026
KOREA
6
5
Price: $25.50
Price
7
6
M365_오빠두
M
8
7
*Q?R*
QR
9
02Microsoft 365 공식
=REGEXREPLACE ( 셀, "[^A-Za-z]", "" )인수 설명 자세히 보기
인수구분설명
셀필수영문자만 추출할 문자열이 입력된 셀입니다.
A
B
C
D
E
1
번호
원문
영문자만 추출
2
1
가AB나
AB
3
2
Excel 함수 365
Excel
4
3
A-1_B?2
AB
5
4
서울KOREA2026
KOREA
6
5
Price: $25.50
Price
7
6
M365_오빠두
M
8
7
*Q?R*
QR
9
이 공식이 사용하는 함수
동작 원리
01Excel 2019 이상 공식
FIND 함수로 각 문자가 영문자 목록에 있는지 확인하고, TEXTJOIN 함수로 일치하는 문자만 순서대로 연결합니다.
Excel 2019 이상 공식의 예제 시트에서 D2 셀이 "AB"를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
1
ROW 함수가 문자 위치 순번을 만듭니다
LEN 함수는 B2 셀의 글자 수 4를 계산하고, INDIRECT 함수와 ROW 함수는 1부터 4까지의 세로 배열을 만듭니다.
=ROW ( INDIRECT ( "1:"&LEN ( B2 ) ) )
= {1;2;3;4}
B2 셀의 각 문자 위치입니다. 2
MID 함수가 문자를 한 글자씩 나눕니다
MID 함수는 위치 순번을 시작 위치로 사용해 B2 셀의 문자를 한 글자씩 분리합니다.
=MID ( B2, ROW ( INDIRECT ( "1:"&LEN ( B2 ) ) ), 1 )
= {"가";"A";"B";"나"}
B2 셀을 한 글자씩 나눈 세로 배열입니다. 3
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번째 위치만 남습니다. 4
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
감사합니다.