5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
실무 위키응용 공식특정 문자 사이 문자열 추출

특정 문자 사이 문자열 추출

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

두 구분 문자 사이의 문자열을 추출하는 공식입니다.

특정 문자 사이 문자열 추출 예제 미리보기
예제 미리보기 크게 보기

인수 설명

01서로 다른 문자 사이

=MID ( , FIND ( 문자1, )+LEN ( 문자1 ), FIND ( 문자2, )-FIND ( 문자1, )-LEN ( 문자1 ) )
인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
인수구분설명
필수추출할 원문이 입력된 셀입니다. 문자열을 직접 입력할 때는 큰따옴표로 묶습니다.
문자1필수추출할 문자열 앞에 있는 문자 또는 문자열입니다. FIND 함수는 첫 번째로 일치하는 위치를 사용합니다.
문자2필수문자1 뒤에서 추출을 끝낼 문자 또는 문자열입니다. 문자1과 같으면 「같은 문자 사이」 공식을 사용합니다.
D2=MID(A2,FIND(B2,A2)+LEN(B2),FIND(C2,A2)-FIND(B2,A2)-LEN(B2))
D3=MID(A3,FIND(B3,A3)+LEN(B3),FIND(C3,A3)-FIND(B3,A3)-LEN(B3))
D4=MID(A4,FIND(B4,A4)+LEN(B4),FIND(C4,A4)-FIND(B4,A4)-LEN(B4))
D8=MID(A8,FIND(B8,A8)+LEN(B8),FIND(C8,A8)-FIND(B8,A8)-LEN(B8))
A
B
C
D
E
F
G
1
원문
문자1
문자2
다른 문자 결과
같은 문자 결과
최신 함수 결과
2
제품(노트북)-판매완료
(
)
노트북
노트북
3
코드[AB-204]확인
[
]
AB-204
AB-204
4
지역<서울>담당
<
>
서울
서울
5
태그#엑셀#공식
#
#
엑셀
엑셀
6
경로/문서/완료
/
/
문서
문서
7
값|중간값|끝
|
|
중간값
중간값
8
주문{A-104}접수
{
}
A-104
A-104
9
첫 번째 여는 괄호의 다음 위치부터 닫는 괄호의 앞 위치까지 세 글자를 추출하므로 D2 셀은 노트북을 반환합니다.

동작 원리

FIND 함수와 LEN 함수가 추출 시작 위치와 글자 수를 계산하고 MID 함수가 그 구간의 문자열을 반환합니다.

서로 다른 문자 사이 공식의 예제 시트에서 D2 셀이 노트북을 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.

1

추출 시작 위치를 계산합니다

A2 셀에서 여는 괄호는 세 번째 글자이고 길이는 1입니다. 두 값을 더해 여는 괄호 다음인 네 번째 글자를 추출 시작 위치로 정합니다.

=FIND ( B2, A2 )+LEN ( B2 )
= 4 노트북의 첫 글자인 노의 위치입니다.
2

추출할 글자 수를 계산합니다

닫는 괄호의 위치 7에서 여는 괄호의 위치 3과 길이 1을 빼면 두 문자 사이의 글자 수 3을 반환합니다.

=FIND ( C2, A2 )-FIND ( B2, A2 )-LEN ( B2 )
= 3 두 문자 사이에 있는 노트북의 글자 수입니다.
3

MID 함수가 문자열을 추출합니다

MID 함수가 A2 셀의 네 번째 글자부터 세 글자를 가져와 노트북을 반환합니다.

=MID ( A2, 4, 3 )
= "노트북" 두 문자 사이에서 추출한 문자열입니다.

02같은 문자의 첫째·둘째 사이

=MID ( , FIND ( 문자, )+LEN ( 문자 ), FIND ( 문자, , FIND ( 문자, )+LEN ( 문자 )+1 )-FIND ( 문자, )-LEN ( 문자 ) )
인수 설명 자세히 보기
인수구분설명
필수추출할 원문이 입력된 셀입니다. 문자열을 직접 입력할 때는 큰따옴표로 묶습니다.
문자필수첫 번째와 두 번째 발생 사이의 값을 추출할 문자 또는 문자열입니다. 세 번째 이후의 발생은 계산에 사용하지 않습니다.
E5=MID(A5,FIND(B5,A5)+LEN(B5),FIND(B5,A5,FIND(B5,A5)+LEN(B5)+1)-FIND(B5,A5)-LEN(B5))
E6=MID(A6,FIND(B6,A6)+LEN(B6),FIND(B6,A6,FIND(B6,A6)+LEN(B6)+1)-FIND(B6,A6)-LEN(B6))
E7=MID(A7,FIND(B7,A7)+LEN(B7),FIND(B7,A7,FIND(B7,A7)+LEN(B7)+1)-FIND(B7,A7)-LEN(B7))
A
B
C
D
E
F
G
1
원문
문자1
문자2
다른 문자 결과
같은 문자 결과
최신 함수 결과
2
제품(노트북)-판매완료
(
)
노트북
노트북
3
코드[AB-204]확인
[
]
AB-204
AB-204
4
지역<서울>담당
<
>
서울
서울
5
태그#엑셀#공식
#
#
엑셀
엑셀
6
경로/문서/완료
/
/
문서
문서
7
값|중간값|끝
|
|
중간값
중간값
8
주문{A-104}접수
{
}
A-104
A-104
9
첫 번째 # 뒤에서 두 번째 #의 위치를 다시 찾아 그 사이 두 글자를 추출하므로 E5 셀은 엑셀을 반환합니다.

동작 원리

첫 번째 FIND 함수의 다음 위치부터 다시 검색해 두 번째 문자를 찾고 MID 함수가 두 위치 사이의 문자열을 반환합니다.

같은 문자 사이 공식의 예제 시트에서 E5 셀이 엑셀을 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.

1

첫 번째 문자의 위치를 찾습니다

A5 셀에서 첫 번째 #은 세 번째 글자에 있습니다. 추출은 그다음인 네 번째 글자부터 시작합니다.

=FIND ( B5, A5 )
= 3 첫 번째 #의 위치입니다.
2

두 번째 문자의 위치를 다시 찾습니다

첫 번째 # 뒤에서 검색을 시작하면 두 번째 #이 여섯 번째 글자에서 발견됩니다.

=FIND ( B5, A5, FIND ( B5, A5 )+LEN ( B5 )+1 )
= 6 두 번째 #의 위치입니다.
3

MID 함수가 두 문자 사이를 추출합니다

첫 번째 # 다음인 네 번째 글자부터 두 번째 # 앞까지 두 글자를 가져와 엑셀을 반환합니다.

=MID ( A5, 4, 6-3-1 )
= "엑셀" 첫 번째와 두 번째 # 사이의 문자열입니다.

03M365·Excel 2024 이상 공식

=TEXTBEFORE ( TEXTAFTER ( , 문자1 ), 문자2 )
인수 설명 자세히 보기
인수구분설명
필수추출할 원문이 입력된 셀입니다. 문자열을 직접 입력할 때는 큰따옴표로 묶습니다.
문자1필수추출할 문자열 앞에 있는 문자 또는 문자열입니다. 첫 번째로 일치하는 위치를 사용합니다.
문자2필수문자1 뒤에서 추출을 끝낼 문자 또는 문자열입니다. 문자1과 같은 값을 지정할 수도 있습니다.
F2=TEXTBEFORE(TEXTAFTER(A2,B2),C2)
F3=TEXTBEFORE(TEXTAFTER(A3,B3),C3)
F4=TEXTBEFORE(TEXTAFTER(A4,B4),C4)
F5=TEXTBEFORE(TEXTAFTER(A5,B5),C5)
F6=TEXTBEFORE(TEXTAFTER(A6,B6),C6)
F7=TEXTBEFORE(TEXTAFTER(A7,B7),C7)
F8=TEXTBEFORE(TEXTAFTER(A8,B8),C8)
A
B
C
D
E
F
G
1
원문
문자1
문자2
다른 문자 결과
같은 문자 결과
최신 함수 결과
2
제품(노트북)-판매완료
(
)
노트북
노트북
3
코드[AB-204]확인
[
]
AB-204
AB-204
4
지역<서울>담당
<
>
서울
서울
5
태그#엑셀#공식
#
#
엑셀
엑셀
6
경로/문서/완료
/
/
문서
문서
7
값|중간값|끝
|
|
중간값
중간값
8
주문{A-104}접수
{
}
A-104
A-104
9
TEXTAFTER 함수로 첫 번째 구분자 뒤를 남기고 TEXTBEFORE 함수로 두 번째 구분자 앞을 잘라 F2:F8에 각 문자열을 반환합니다.

동작 원리

TEXTAFTER 함수가 첫 번째 구분자 뒤의 문자열을 남기고 TEXTBEFORE 함수가 다음 구분자 앞의 문자열만 반환합니다.

M365·Excel 2024 이상 공식의 예제 시트에서 F5 셀이 엑셀을 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.

1

TEXTAFTER 함수가 첫 구분자 뒤를 남깁니다

A5 셀에서 첫 번째 # 앞부분인 태그#을 제외하고 그 뒤 문자열을 반환합니다.

=TEXTAFTER ( A5, B5 )
= "엑셀#공식" 첫 번째 # 뒤에 남은 문자열입니다.
2

TEXTBEFORE 함수가 다음 구분자 앞을 남깁니다

남은 문자열에서 다음 # 앞부분만 가져와 두 구분자 사이의 엑셀을 반환합니다.

=TEXTBEFORE ( TEXTAFTER ( A5, B5 ), C5 )
= "엑셀" 두 # 사이에서 추출한 문자열입니다.

댓글 37

댓글 37
5 (20개 평가)
루인
루인 2020.07.31 15:48
최고에요! 다른 강의보다 훨씬 간편하고 ㅠㅠ 중간단계까지 있으니 너무 편하고 좋네요 ㅠ
박용석
박용석 2020.10.05 07:24
[조건1] 서로 다른 두 문자 사이의 값을 추출할 경우
= MID ( 셀, FIND("특정문자1", 셀) + [@1] , FIND("특정문자2", 셀) - FIND("특정문자1", 셀) - [@2])
여기에서 @2가 아니라 @1아닌가용??
엑셀기초 강의 12강에서는 @1로 나와있는데 헷갈리네용 ?ㅠ
오빠두엑셀
오빠두엑셀 작성자 2020.10.05 17:08
아 네 맞습니다 ㅜㅜ 공식 작성에 잘못된 부분이 있었네요
오늘 안으로 포스트 내용 깔끔하게 수정하도록 하겠습니다.
잘못된 부분 짚어주셔서 대단히 감사드립니다.
little
little 2020.10.06 11:52
좋은 강의 감사합니다. 질문이 하나 있습니다.
같은 두 문자 사이에 글자를 추출할 때, 예를 들면 https://naver.com/id/2222 같은 형식에서 id를 추출하고 싶은데요. 알려주신 수식으로는 naver.com이라는 글자가 추출됩니다.
두번째 "/"와 세번째 "/" 사이 글자를 추출할 수 있는 방법이 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2020.10.06 19:54
안녕하세요.
FIND("문자", 셀, FIND("문자", 셀, FIND("문자",셀)+LEN("문자")+1)+LEN("문자")+1) 
은 3번째로 있는 문자의 위치를 반환합니다.
위 수식을 자주묻는질문1 에 적어드린 공식에 응용하셔서, 2번째-3번째 문자 사이에 있는 값을 추출해보시길 바랍니다.
little
little 2020.10.06 21:27
정말 감사합니다 !! 유투브 잘 보고있습니다 양질의 컨텐츠에 또 한번 감사드립니다!
제발d
제발d 2020.11.12 18:00
덕분에 문장사이에 텍스트는 추출하였는데 이 텍스트 내용을 사용하려고 하니 값이 아니라 함수로 a1, a2 등을 포함하고있어서 값을 이동하거나 그 값의 내용이 복사가 안되고 에러가 뜨는데 혹시 추출한 텍스트를 다른 시트에 옮겨 사용할수있는 방법이 없나요?
오빠두엑셀
오빠두엑셀 작성자 2020.11.12 20:12
값을 복사하신 뒤, 붙여넣기를 바로 하지 마시고
우클릭 - 선택하여 붙여넣기 - 값
형식으로 붙여넣기 하신 뒤 사용해보시겠어요?^^
이유라
이유라 2021.01.14 16:46
혹시 떨어져있는 셀3개를 숫자낮은순서부터 차례로 나열하는 법 있을까용,,? 두개까지는 되는데 3개를 모르겠네용.. 사용했던건 =IF(Q6997<U6997,H6997&Q6997&U6997,H6997&U6997&Q6997) 이거에요!
오빠두엑셀
오빠두엑셀 작성자 2021.01.16 05:15
안녕하세요
SMALL 함수를 사용해보시겠어요?
=SMALL(범위,{1;2;3})
을 Ctrl + Shift + Enter 로 입력하신 뒤 아래로 자동채우기해보세요.
bmh
bmh 2021.02.22 16:50
=MID(셀, FIND("강남구 ", 셀)+LEN("강남구 ")+1,FIND("센터", 셀)-FIND("강남구 ", 셀)-LEN("강남구 ")-1)
=MID(셀, 5+4+1, 13-5-4-1)
=MID(셀, 9, 3)
="오빠두"

실제로는 "빠두 "가 나오게 되는데, 왜 이럴까요?
오빠두엑셀
오빠두엑셀 작성자 2021.02.23 12:27
안녕하세요!
공식을 잘못 적어드렸습니다.
아래 공식이 맞는 공식입니다. 다시 확인해보시겠어요? :)
=MID(셀, FIND("문자1", 셀)+LEN("문자1"),FIND("문자2", 셀)-FIND("문자1", 셀)-LEN("문자1"))
감사합니다.
후라씨
후라씨 2021.07.12 01:01
감사합니다!!최고에요
pys****
pys**** 2021.10.19 04:30
좋은 정보 감사합니다.
돌석이
돌석이 2022.03.30 12:53
설명 감사합니다 ^^ 혹시 특정 문자1 또는 문자2 로 조건을 지정해서 값을 찾을 수 있을까요? 예를 들면 앞에 문자가 "구로구"나 "중구" 둘 중 하나를 충족할 때 문자2 사이의 값을 추출할 수 있는 수식도 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2022.04.01 16:20
상황에 따라 공식이 조금씩 달라지겠지만, OR 함수를 공식 중간에 필요한 곳에 사용하시면 될 것 같습니다.
후우
후우 2022.08.24 16:49
안녕하세요. 항상 신세지고 있습니다!
셀 : 서울시 동작구 오빠두 센터; 서울시 강남구 누나두 센터;

이럴때,
MID(셀,FIND("강남구 ",셀)+LEN("강남구 "),FIND(" 센터",셀)-FIND("강남구 ",셀)-LEN("강남구 "))
라는 식을 사용하여, "누나두" 라는 값을 얻고 싶은데요.
" 센터" 라는 문구가 셀에 두번 포함돼 있어서인지, 값을 찾지 못 합니다.

" 센터" 문구가 중복되는 상태에서 강남구 ~ 센터 사이 문구만 가져오고 싶은데
방법이 없을까요?
오빠두엑셀
오빠두엑셀 작성자 2022.08.27 19:12
안녕하세요.
Find 함수의 3번째 인수로 시작위치를 지정할 수 있습니다.
기존의 FIND 함수를 FIND("찾을값",셀,FIND(";",셀)) 로 수정해서 ; 뒤에서부터 센터를 검색하도록 공식을 수식을 수정해보세요.^^
스크랩 완료