- 최초 작성일: 2013-10-14
- 최종 수정일: 2026-09-21
- 조회수: 60 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: 괄호 안의 숫자 계산하기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
이런 자료가 있습니다.
| 자료 |
|---|
| 권준우(13232) |
| 박독수리 하늘을 날다(111) |
| 김빛나라(54) |
| 김 성수 (1110) |
| 최 진 사 (999) |
| 박 판 서(6953) |
문제가 많은 자료이지요.
자료를 입력(혹은 관리)할 때에는 항상 결과물을 염두에 두어야 합니다.
예를 들어 전화번호를 입력하는데
철수는 02)123-4567 이라고 입력하고
길동이는 02-123-4567 이라고 입력하고
영희는 02 123 4567 과 같이 서로 다르게 입력을 한다면
나중에 어떤 일이 생길지는 안봐도 뻔합니다.
"전화번호를 제대로 입력합시다"는 얘기를 하려는 것은 아니고…
만약 원본 자료의 형태는 건들지 않고 괄호 안의 숫자만 추출해야 한다면
어떻게 해야 할까요?
VBA를 이용하여 프로그래밍을 해야 할까요?
함수 몇 개를 조합하면 간단히 해결할 수 있습니다.
| 자료 | 괄호 안의 숫자 |
|---|---|
| 권준우(13232) | 13,232 |
| 박독수리 하늘을 날다(111) | 111 |
| 김빛나라(54) | 54 |
| 김 성수 (1110) | 1,110 |
| 최 진 사 (999) | 999 |
| 박 판 서(6953) | 6,953 |
| 합계 22,459 | |
엑셀 괄호 안의 숫자 추출하기와 합계 구하기
핵심 요약: 괄호 안의 숫자를 추출하고 합계 구하기
괄호 안의 숫자는 FIND, MID, LEN, VALUE 함수를 조합해 추출하고, 합계는 SUMPRODUCT 함수나 배열 수식으로 한 번에 구할 수 있습니다.
- 규칙 찾기: "("가 발견된 위치 다음부터 ")" 위치 전까지의 문자를 추출합니다.
-
추출 수식:
=VALUE(MID(B31,FIND("(",B31)+1,(LEN(B31)-FIND("(",B31))-1)) -
합계 수식:
=SUMPRODUCT(VALUE(MID(B31:B36,…)))또는 배열 수식{=SUM(N(VALUE(MID(B31:B36,…))))} - 주의: 수식은 ")"가 문자열의 맨 끝에 있다고 가정합니다.
1. 무작정 따라하기 전에 규칙 찾기
"OOO 무작정 따라하기"라는 제목의 책이 유행한 적이 있었습니다.
하지만… 무작정 따라하지는 마세요!
일을 시작하기에 앞서, 어떤 방식으로 처리할 것인지
생각해보는 과정이 반드시 필요합니다.
무작정 따라하기 전에 한번 더 생각하면 더 빠르게 익힐 수 있습니다.
(특정 서적을 폄하하는 말을 하는 것이 아니니 오해 없으시길!!)
이 문제의 경우에는 어떤 규칙/패턴이 있나요?
어떻게 하면 문제를 해결할 수 있을까요?
그것을 말로 표현하면 어떻게 될까요?
💡 말로 표현하면
""("가 발견된 위치 다음부터 ")" 위치 전까지의 문자를 추출해라."
아마 이쯤 되겠지요.
이것을 엑셀이 알아먹을 수 있게 표현하면 이렇게 됩니다.
=VALUE(MID(B31,FIND("(",B31)+1,(LEN(B31)-FIND("(",B31))-1))
아마 여러분이 모르는 함수는 하나도 없을 겁니다.
Find 함수를 이용하여 "("와 ")"의 위치를 찾아내고
그 위치를 기준으로 문자열 함수인 Mid와 Len 함수를 사용해서
해당 값들을 추출해 내는 과정을 한 줄로 표현하면 위와 같이 됩니다.
참고: 수식 나누어 보기
FIND("(",B31)는 "("의 위치이고, LEN(B31)-FIND("(",B31)-1은 "(" 다음부터 ")" 앞까지의 글자 수입니다(")"가 마지막 글자라는 가정). MID가 그 구간의 글자를 꺼내고 VALUE가 숫자로 바꿉니다.
2. 다른 표현 방법
한양 가는 방법이 한 가지만 있는 것이 아니듯,
=N((MID(B31,FIND("(",B31)+1,(LEN(B31)-FIND("(",B31))-1))*1)
=SUMPRODUCT(VALUE(MID(B31,FIND("(",B31)+1,(LEN(B31)-FIND("(",B31))-1))*1)
이런 식으로 다르게 표현할 수도 있겠습니다.
3. 괄호 안의 숫자를 한꺼번에 더하기
그런데 만약에 각자의 이름 옆에 일일이 숫자값을 추출하지 말고
괄호 안의 숫자 값을 더한 결과 값을 단번에 구하려면 어떻게 하면 될까요?
위 표의 노란색 셀에는 이런 수식이 들어 있습니다.
=SUMPRODUCT(VALUE(MID(B31:B36,FIND("(",B31:B36)+1,(LEN(B31:B36)-FIND("(",B31:B36))-1)))
이전 수식의 결과값을 Sumproduct 함수를 이용하여 합산한 것입니다.
혹은 배열 수식을 이용하여 아래와 같이 할 수도 있겠군요.
{=SUM(N(VALUE(MID(B31:B36,FIND("(",B31:B36)+1,(LEN(B31:B36)-FIND("(",B31:B36))-1))))}
수식 앞뒤의 { } 괄호는 손으로 입력하는 것이 아니라
Ctrl+Shift+Enter 키를 동시에 입력하면 자동으로 생긴다는 것을
잊으면 안되겠지요?
참고: 최신 Excel에서는
Excel 365와 Excel 2021 이후 버전에서는 Ctrl + Shift + Enter 없이 Enter만 눌러도 배열 수식이 계산됩니다.
정리 — 수식 한눈에 보기
| 목적 | 수식 |
|---|---|
| 괄호 안의 숫자 추출 | =VALUE(MID(B31,FIND("(",B31)+1,(LEN(B31)-FIND("(",B31))-1)) |
| 합계(SUMPRODUCT) | =SUMPRODUCT(VALUE(MID(B31:B36,FIND("(",B31:B36)+1,(LEN(B31:B36)-FIND("(",B31:B36))-1))) |
| 합계(배열 수식) | {=SUM(N(VALUE(MID(B31:B36,FIND("(",B31:B36)+1,(LEN(B31:B36)-FIND("(",B31:B36))-1))))} |
자주 묻는 질문 (FAQ)
Q1. 엑셀에서 괄호 안의 숫자만 추출하려면 어떻게 하나요?
=VALUE(MID(B31,FIND("(",B31)+1,(LEN(B31)-FIND("(",B31))-1))처럼 FIND 함수로 "("의 위치를 찾고, MID 함수로 그 다음 글자부터 ")" 앞까지 추출한 뒤 VALUE 함수로 숫자로 바꿉니다. 이 수식은 ")"가 문자열의 맨 끝에 있다고 가정합니다.
Q2. 괄호 안의 숫자를 한꺼번에 더하려면 어떻게 하나요?
범위를 인수로 넣어 =SUMPRODUCT(VALUE(MID(B31:B36,FIND("(",B31:B36)+1,(LEN(B31:B36)-FIND("(",B31:B36))-1)))처럼 SUMPRODUCT 함수를 사용하면 각 셀의 값을 따로 추출하지 않고 합계를 한 번에 구합니다. 예제에서는 6개 자료의 합계 22,459가 나옵니다.
Q3. 배열 수식으로 합계를 구하려면 어떻게 하나요?
=SUM(N(VALUE(MID(B31:B36,FIND("(",B31:B36)+1,(LEN(B31:B36)-FIND("(",B31:B36))-1))))를 입력하고 Ctrl + Shift + Enter 키를 함께 누르면 수식 앞뒤에 { }가 자동으로 생기며 배열 수식으로 계산됩니다.
마치며
다음 시간에…