이 페이지에서
구문
= TextToNumber ( 텍스트, [단위] )
인수구분
형식 설명
텍스트
필수
Variant
숫자로 변환할 텍스트 또는 텍스트가 적힌 셀입니다.
단위
선택
Variant
텍스트를 숫자로 변환할 때 제거할 통화 단위입니다. 기본값은 "원" 입니다.
필요에 따라 "\", "달러", "$" 등을 단위로 지정합니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ TextToNumber 함수
'▶ 텍스트를 숫자로 변환합니다.
'▶ 인수 설명
'_____________sNum : 숫자로 변환할 텍스트 또는 텍스트가 입력된 셀입니다.
'_____________unit : 텍스트에 포함된 단위입니다.
'###############################################################
Function TextToNumber(sNum, Optional unit = "원")
If IsObject(sNum) Then sNum = sNum.Value
If IsObject(unit) Then unit = unit.Value
Dim j As Long: Dim y As Long: Dim m As Long
Dim s1 As String: Dim s2 As String: Dim s3 As String
sNum = Replace(sNum, "일", "1")
sNum = Replace(sNum, "이", "2")
sNum = Replace(sNum, "삼", "3")
sNum = Replace(sNum, "사", "4")
sNum = Replace(sNum, "오", "5")
sNum = Replace(sNum, "육", "6")
sNum = Replace(sNum, "칠", "7")
sNum = Replace(sNum, "팔", "8")
sNum = Replace(sNum, "구", "9")
j = InStr(1, sNum, "조")
y = InStr(1, sNum, "억")
m = InStr(1, sNum, "만")
If y = 0 Then y = j
If m = 0 Then m = y
s1 = Left(sNum, j)
s2 = Mid(sNum, j + 1, y - j)
s3 = Mid(sNum, y + 1, m - y)
s4 = Mid(sNum, m + 1)
s1 = Replace(s1, "천", "*1000000000000000+")
s1 = Replace(s1, "백", "*100000000000000+")
s1 = Replace(s1, "십", "*10000000000000+")
s1 = Replace(s1, "조", "*1000000000000+")
s2 = Replace(s2, "천", "*100000000000+")
s2 = Replace(s2, "백", "*10000000000+")
s2 = Replace(s2, "십", "*1000000000+")
s2 = Replace(s2, "억", "*100000000+")
s3 = Replace(s3, "천", "*10000000+")
s3 = Replace(s3, "백", "*1000000+")
s3 = Replace(s3, "십", "*100000+")
s3 = Replace(s3, "만", "*10000+")
s4 = Replace(s4, "천", "*1000+")
s4 = Replace(s4, "백", "*100+")
s4 = Replace(s4, "십", "*10+")
s4 = Replace(s4, unit, "")
sNum = s1 & s2 & s3 & s4
sNum = Replace(sNum, " ", "")
sNum = Replace(sNum, "+*", "+1*")
If Right(sNum, 1) = "+" Then sNum = Left(sNum, Len(sNum) - 1)
sNum = Evaluate("=" & sNum)
TextToNumber = sNum
End Function
활용 예제
텍스트로 작성된 값을 숫자로 변환하기
= TextToNumber ( "일조이천삼백사십오억구십칠만오천사백이십원" )
'// 1234500975420 을 반환합니다.
숫자와 텍스트가 섞인 값을 숫자로 변환하기
= TextToNumber ( "3만 4천 5백 달러", "달러" )
'// 34500 을 반환합니다.
안내사항
텍스트에 "원"이 아닌 단위가 쓰였는데 단위 인수를 입력하지 않으면 #NAME? 오류를 반환합니다.
숫자로 변환할 수 없는 문자가 포함된 경우에도 #NAME? 오류를, 텍스트로 여러 개의 셀이나 범위를 입력하면 #VALUE! 오류를 반환합니다.
댓글 2
로그인 후 댓글을 작성할 수 있습니다.
kojun****
2020.06.11 16:15
엑셀이 점점 좋아지네요 ㅎㅎ
강민준🤗
2024.08.11 13:07
좋은 자료 감사합니다.🙇♂️