구글 스프레드시트 REGEXEXTRACT 사용법: 주문번호 추출·#N/A 해결
문장 안에서 규칙이 일정한 주문번호만 꺼내려면 REGEXEXTRACT를 사용합니다. A2에 서울 / ORD-2026-0017 / 결제완료가 있다면 아래 수식은 ORD-2026-0017을 반환합니다.
기본 구조는 =REGEXEXTRACT(텍스트, 정규식)입니다. 한 셀에 같은 형식의 코드가 여러 개 있어도 첫 번째로 일치한 부분을 반환하므로, 추출 대상의 시작 문자·자릿수·끝 경계를 패턴에 함께 적어야 합니다.
일치하는 부분이 없으면 #N/A가 나타납니다. 숫자 셀을 텍스트로 바꾸지 않고 넣으면 #VALUE!가 생길 수 있으므로, 오류를 가리기 전에 입력 형식과 패턴을 먼저 구분하세요.

먼저 고를 방식
- 셀 안의 코드·숫자·문구 일부만 추출: REGEXEXTRACT
- 조건에 맞는 원본 행 전체를 남김: FILTER로 조건 행 추출
- 열 선택과 조건·정렬을 한 결과표로 만듦: QUERY 함수로 결과표 만들기
REGEXEXTRACT는 언제 쓰나요?
원문 셀은 그대로 두고 일정한 패턴에 맞는 첫 문자열만 별도 열에 꺼낼 때 적합합니다. 주문 메모에서 주문번호를 뽑거나, 상품 설명에서 규격 코드를 분리하거나, 결제 문구에서 숫자를 꺼내는 작업이 여기에 해당합니다.
| 하려는 일 | 권장 방법 | 결과 |
|---|---|---|
| 문장 속 주문번호 한 개 | REGEXEXTRACT | 일치 문자열 |
| 조건에 맞는 행 목록 | FILTER | 여러 행 |
| 필요한 열과 정렬을 포함한 표 | QUERY | 가공된 범위 |
REGEXEXTRACT는 원문을 바꾸지 않습니다. 결과 열을 따로 두면 패턴을 수정하거나 오류 행만 검토해도 원본 메모는 남습니다.
기본 수식은 어떻게 읽나요?
구문은 텍스트와 정규식 두 인수로 구성됩니다.
=REGEXEXTRACT(A2,"ORD-[0-9]{4}-[0-9]{4}")
| 패턴 | 뜻 |
|---|---|
ORD- | 고정 문자 |
[0-9]{4} | 숫자 네 자리 |
- | 하이픈 한 개 |
[0-9]{4} | 마지막 숫자 네 자리 |
Google Sheets의 정규식은 RE2 문법을 사용하며 유니코드 문자 클래스 일치는 지원하지 않습니다. 주문번호처럼 영문 고정 문자와 ASCII 숫자 범위를 명시하면 파일 언어나 표시 형식에 덜 의존합니다.
주문번호를 어떻게 추출하나요?
A열에 원문, B열에 추출값을 두고 B2에 수식을 입력합니다. 아래로 복사하면 같은 규칙을 각 행에 적용할 수 있습니다.
| 원문 | 기본 추출 결과 | 판단 |
|---|---|---|
| 서울 / ORD-2026-0017 / 결제완료 | ORD-2026-0017 | 규칙 일치 |
| 대전 / 주문번호 없음 / 문의 | #N/A | 일치 없음 |
| 인천 / ORD-2026-22001 / 오입력 | ORD-2026-2200 | 부분 일치 위험 |
| ORD-2026-0008 재주문 ORD-2026-0009 | ORD-2026-0008 | 첫 일치만 반환 |
첫 두 행은 의도대로 구분되지만, 뒷번호가 다섯 자리인 행은 기본 패턴이 앞 네 자리까지만 잘라낼 수 있습니다. 코드 길이가 검증 조건이라면 다음 문자까지 확인해야 합니다.
5자리 오입력을 부분 일치로 잘라내지 않으려면?
코드 뒤가 숫자가 아니거나 문자열 끝일 때만 인정하도록 경계를 추가합니다. 첫 괄호는 반환할 주문번호를 묶고, (?:[^0-9]|$)는 다음 문자가 숫자가 아니거나 끝인지 확인합니다.
=REGEXEXTRACT(A2,"(ORD-[0-9]{4}-[0-9]{4})(?:[^0-9]|$)")
이 패턴은 ORD-2026-0017은 그대로 반환하지만 ORD-2026-22001은 일치시키지 않습니다. RE2가 지원하지 않는 전방탐색을 쓰지 않고, 캡처 그룹과 다음 문자 조건으로 경계를 나눈 방식입니다.

오류 행을 빈칸으로 숨기기보다 검토 대상으로 남기려면 IFNA를 바깥에 씁니다.
=IFNA(REGEXEXTRACT(A2,"(ORD-[0-9]{4}-[0-9]{4})(?:[^0-9]|$)"),"확인 필요")
#N/A와 잘못된 패턴은 어떻게 구분하나요?
#N/A는 수식 문법이 틀렸다는 뜻이 아니라 입력 텍스트에서 일치 항목을 찾지 못했다는 뜻일 수 있습니다. 반면 괄호가 닫히지 않은 "(" 같은 패턴은 유효한 정규식이 아니므로 패턴 자체를 고쳐야 합니다.
증상별 첫 확인과 복구
| 증상 | 먼저 확인 | 복구 |
|---|---|---|
#N/A | 원문에 코드가 있는지, 자릿수가 맞는지 | 패턴을 고치거나 IFNA로 ‘확인 필요’ 표시 |
#REF!와 유효하지 않은 정규식 메시지 | 괄호·대괄호·반복 기호가 닫혔는지 | 패턴 문법 수정 |
| 코드가 짧게 잘림 | 마지막 자릿수 뒤 경계가 있는지 | 비숫자 또는 문자열 끝 조건 추가 |
| 코드가 두 개인데 하나만 나옴 | 첫 일치만 필요한 작업인지 | 모든 발생 항목이 필요하면 추출 구조를 별도로 설계 |
IFNA는 일치 없음만 바꿉니다. 잘못된 정규식까지 숨기지 않으므로 패턴 오류와 데이터 누락을 서로 다른 문제로 볼 수 있습니다.
숫자를 계산에 쓰려면 왜 VALUE가 필요한가요?
REGEXEXTRACT는 텍스트를 입력받고 결과도 텍스트로 반환합니다. 결제금액 128000원에서 숫자만 꺼내면 화면에는 128000이 보여도 문자열이므로, 합계나 크기 비교에 쓸 때만 VALUE로 숫자로 바꿉니다.
=VALUE(REGEXEXTRACT("결제금액 128000원","[0-9]+"))
입력 셀 자체가 숫자라면 먼저 TEXT로 바꿉니다.
=REGEXEXTRACT(TEXT(B17,"0"),"[0-9]+")

PC·Android·iPhone과 iPad에서는 무엇이 다른가요?
수식의 함수명과 패턴은 같지만 입력 화면의 크기가 다릅니다. 긴 정규식을 처음 만들고 오류 메시지를 읽을 때는 PC 웹이 편하고, 모바일 앱은 짧은 수정이나 결과 확인에 적합합니다.
| 환경 | 입력 | 권장 작업 |
|---|---|---|
| PC·Mac 웹 | 결과 셀 선택 → 수식 입력 → Enter | 패턴 설계, 범위 복사, 오류 메시지 확인 |
| Android 앱 | 셀 탭 → =로 수식 입력 → 완료 | 기존 패턴의 짧은 수정과 결과 확인 |
| iPhone·iPad 앱 | 셀 탭 → =로 수식 입력 → 완료 | 기존 패턴의 짧은 수정과 결과 확인 |
모바일에서 복사한 수식이 작동하지 않으면 따옴표가 굽은 인용부호로 바뀌지 않았는지 먼저 보세요. 정규식은 일반 큰따옴표 "로 감싸야 합니다.
실무에서 적용할 순서
- 원문 열을 보존하고 옆에 추출 결과 열을 만듭니다.
- 정상 코드 한 셀에 기본 패턴을 넣어 원하는 부분이 나오는지 봅니다.
- 코드 없음, 자릿수 초과, 코드 두 개 같은 경계 행을 함께 확인합니다.
- 부분 일치가 생기면 캡처 그룹과 비숫자·문자열 끝 조건을 추가합니다.
#N/A행을 확인한 뒤IFNA로 ‘확인 필요’를 표시합니다.- 숫자 입력은
TEXT, 계산할 출력만VALUE로 변환합니다. - 새 원문 형식이 추가되면 기존 패턴이 잘라낸 값을 그대로 믿지 말고 경계 행부터 다시 봅니다.