엑셀 TEXTEBEFORE 함수는 지정한 구분자 앞에 있는 텍스트를 추출하는 함수입니다.
=TEXTBEFORE(텍스트, 구분기호, [발생지점], [대소문자일치], [끝처리], [N/A값])
- 중괄호 {} 로 묶어 여러 구분기호를 사용할 수 있습니다.
=TEXTBEFORE텍스트,{"@","/"}) → "@"와 "/" 를 구분기호로 사용합니다.
- 기본값은 1 입니다. 음수로 입력하면 뒤에서부터 셉니다.
예) -1 : 뒤에서 첫번째로 발생하는 기호를 기준으로 나눕니다.
- 0 [기본값] : 대소문자를 구분합니다.
- 1 : 대소문자를 구분하지 않습니다.
- 0 [기본값] : 처리하지 않음
- 1 : 텍스트 끝을 구분기호로 처리
엑셀 TEXTBEFORE 함수는 문자열에서 특정 구분기호 앞에 위치한 텍스트를 추출하는 함수입니다. 예를 들어 이메일 주소(abc@naver.com)에서 아이디 부분(abc)만 추출하거나, 제품 코드(ZA-15D)에서 특정 부분(ZA)만 추출하는 등 다양한 텍스트 작업에 사용할 수 있습니다.
=TEXTBEFORE("abc@naver.com","@")/ / → "abc" =TEXTBEFORE("홍길동-과장-영업팀","-")/ / → "홍길동"
구분기호가 여러개 있을 경우, 몇 번째 구분 기호를 기준으로 나눌지 발생 지점을 지정하거나 대소문자 구분 여부도 설정할 수 있습니다.
=TEXTBEFORE("홍길동-과장-영업팀","-",2) / / "홍길동-과장" → 2번째 발생한 구분기호 앞의 텍스트를 추출합니다.
다음과 같이 함수를 작성하면 "/" 기호를 기준으로 직원 정보를 자유롭게 추출할 수 있습니다.
=TEXTBEFORE("김철수/대리/인사팀/2020년입사", "/") / / "김철수" → 1번째 구분기호 기준 =TEXTBEFORE("김철수/대리/인사팀/2020년입사", "/", 2) / / "김철수/대리" → 2번째 구분기호 기준
다음과 같이 함수를 작성하면 주민등록번호에서 생년월일(앞 6자리)를 추출할 수 있습니다.
=TEXTBEFORE("820430-1234567","-") / / "820430"
함수의 구분 기호를 중괄호 {} 로 묶어서 작성하면 여러 기호를 동시에 지정할 수 있습니다. 다음과 같이 함수를 작성하면 구분기호에 상관없이 날짜에서 년도를 추출할 수 있습니다.
=TEXTBEFORE("2025년 05월 11일",{"년","-","/"}) / / "2025" =TEXTBEFORE("2025-05-11",{"년","-","/"}) / / "2025" → 구분기호에 상관없이 날짜 형식의 텍스트에서 년도를 추출합니다.

TEXTBEFORE 함수의 [끝처리] 인수를 1로 설정하면 문자열의 끝 부분이 가상의 구분자로 처리됩니다. 예를 들어 "강남_아이파크_102동_4호" 라는 문자열에서 "_" 기호를 기준으로 TEXTBEFORE 함수를 사용하는 상황을 가정하겠습니다.
=TEXTBEFORE("102.81.234.123",".",4) / / #N/A → 4번째 구분기호가 없으므로 #N/A 오류를 반환합니다.
하지만 끝처리를 1로 입력하면 텍스트 끝에 가상의 구분기호가 추가되어, 문자열에 구분기호가 없거나 발생지점이 잘못되더라도 전체 문자열을 반환할 수 있습니다.
=TEXTBEFORE("102.81.234.123",".",4,,1) / / "102.81.234.123" → 텍스트 끝에 가상의 구분자가 추가되어 전체 문자열이 반환됩니다.
구분 기호가 텍스트에 포함되어 있지 않을 경우 TEXTBEFORE 함수는 #N/A 오류를 반환합니다
발생 지점이 0으로 잘못 입력되면 함수는 #VALUE! 오류를 반환합니다.
발생 지점이 양수일 경우 구분기호를 문자열의 앞에서부터 검색하고, 음수일 경우 문자열의 뒤에서부터 검색합니다.
구분기호로 빈 문자열("")을 사용하면 TEXTBEFORE 함수는 전체 문자열을 반환합니다.
