메뉴
실무 위키응용 공식엑셀 셀에서 영문자만 추출 공식

엑셀 셀에서 영문자만 추출 공식

2019
지원 버전 자세히 보기
엑셀 2019엑셀 2021엑셀 2024M365웹 엑셀

셀에서 한글·숫자·기호를 제외하고 영문자(a-z, A-Z)만 추출하는 공식입니다.

엑셀 셀에서 영문자만 추출 공식 예제 미리보기
예제 미리보기 크게 보기

인수 설명

01TEXTJOIN 함수 공식 (엑셀 2019 이상)

{=TEXTJOIN ( "",, IFERROR ( MID ( , ISNUMBER ( FIND ( MID ( , ROW ( INDIRECT ( "1:"&LEN ( ) ) ), 1 ), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ) ) * ROW ( INDIRECT ( "1:"&LEN ( ) ) ), 1 ), "" ) )}
인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
인수구분설명
필수영문자만 추출할 문자열이 입력된 셀입니다.
D2{=TEXTJOIN("",,IFERROR(MID(B2,ISNUMBER(FIND(MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1),"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"))*ROW(INDIRECT("1:"&LEN(B2))),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
B2 셀의 문자를 하나씩 검사해 영문자인 A와 B만 이어 붙이므로 D2 셀은 "AB"를 반환합니다. FIND 함수로 검사해 *와 ?를 영문자로 잘못 남기지 않습니다. 엑셀 2019에서는 Ctrl+Shift+Enter로 입력해야 합니다.

02REGEXREPLACE 함수 공식 (M365)

=REGEXREPLACE ( , "[^A-Za-z]", "" )
인수 설명 자세히 보기
인수구분설명
필수영문자만 추출할 문자열이 입력된 셀입니다.
D2=REGEXREPLACE(B2,"[^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
REGEXREPLACE 함수가 B2 셀에서 영문자가 아닌 문자를 모두 제거하므로 D2 셀은 "AB"를 반환합니다.
이 공식이 사용하는 함수

동작 원리

01TEXTJOIN 함수 공식 (엑셀 2019 이상)

FIND 함수로 각 문자가 영문자 목록에 있는지 확인하고, TEXTJOIN 함수로 일치하는 문자만 순서대로 연결합니다.

엑셀 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만 연결한 결과입니다.
댓글 12
5 (7개 평가)
러스티
러스티 2021.11.16 19:51
천재적입니다...
Protoss
Protoss 2021.11.18 22:09
굿굿
조승근
조승근 2021.12.28 12:32
함수 적용했는데 첫 글자만 나오는데 왜그러는지 모르겠네요ㅠㅠ
오빠두엑셀
오빠두엑셀 작성자 2021.12.30 20:51
조승근님 안녕하세요?
댓글만으로는 원인 확인이 어렵고 실제 사용하신 값이나 예제파일을 함께 올려주셔야 답변 드릴 수 있을 듯 합니다.
홈페이지 Q&A 커뮤니티를 통해 다시 글을 올려주시겠어요?^^
감사합니다.
델타
델타 2022.05.23 23:20
함수를 적용해 보니, "이 함수에 대해 너무 많이 인수를 입력했습니다." 라는 오류가 뜹니다. 무엇이 문제일까요? 엑셀 버젼 2016이상입니다.
오빠두엑셀
오빠두엑셀 작성자 2022.05.24 16:21
안녕하세요.
함수에 들어가는 인수의 개수를 초과해서 입력해서 그렇습니다.
게시글에 함께 올려드린 예제파일을 참고하셔서 수식을 다시 작성해보세요.
가을귀
가을귀 2022.09.01 13:34
예제 파일 받고 연습해보려했는데 #NAME? 오류가 떠 있습니다. 왜 그런걸까요..?
오빠두엑셀
오빠두엑셀 작성자 2022.09.01 16:28
안녕하세요.
TEXTJOIN 함수는 엑셀 2019 이후 버전에서만 제공됩니다.
따라서 엑셀 2016 이전 버전을 사용중이실경우,
#NAME? 오류가 발생합니다. :) 감사합니다.
멈뭄미
멈뭄미 2023.11.23 13:46
혹시 동일한 상황에 한글만 추출하고 싶을 경우엔 어떻게 하면 될까요?
오빠두엑셀
오빠두엑셀 작성자 2023.11.25 17:16
안녕하세요.
한글만 추출하는 작업은 함수만으로는 불가능하고 VBA 코드나 정규표현식을 사용해야만 가능합니다.
자세한 내용은 아래 Q&A 커뮤니티 글을 한번 확인해보시겠어요?
https://www.oppadu.com/question/?mod=document&uid=48717
감사합니다.
sonic7
sonic7 2026.06.17 16:47
데이터 E17셀       =TEXTJOIN("",TRUE,FILTER(MID(E17,SEQUENCE(LEN(E17)),1),((UNICODE(MID(E17,SEQUENCE(LEN(E17)),1))>=44032)*(UNICODE(MID(E17,SEQUENCE(LEN(E17)),1))<=55203))))
강민준🤗
강민준🤗 2024.08.11 17:05
좋은 강의 감사합니다🙇‍♂️
스크랩 완료