2019-11-11

170106_한글을 숫자로 변환하는 방법_numberstring 반대

* 출처 : http://tip.daum.net/question/57177516


한글을 숫자로 변환하는 방법_numberstring 반대


질문 아이콘
엑셀에서 numberstring 이라는 함수는 숫자를 한글로 변환하는데 그 반대로 한글을 숫자로 변환하는 함수나 방법 좀 알려주세요.

frdric__| 2009.07.14


답변 아이콘사용자 정의 함수로 만들었습니다.
엑셀에서 Alt+F11을 하여 VBE 창에 들어가서 삽입-모듈을 하세요.
모듈 창에 아래의 코드를 복사해 넣고
셀에서 =hantonum("오백사십이만") 또는 =hantonum(한글이 들어있는 셀주소) 로 입력하세요.

아래 소스는 조 단위까지 숫자로 나타내어 줍니다. 숫자가 너무 크면 지수로 나타나니 셀서식에서 숫자로 고쳐주세요.

'---------------------
Function HanToNum(HanStr As String)
Dim Jo, Ek, Ma, El As Double
If InStr(HanStr, "조") <> 0 Then
Jo = makeStr(Left(HanStr, InStr(HanStr, "조") - 1))
Jo = Jo * 10 ^ 12
HanStr = Right(HanStr, Len(HanStr) - InStr(HanStr, "조"))
End If
If InStr(HanStr, "억") <> 0 Then
Ek = makeStr(Left(HanStr, InStr(HanStr, "억") - 1))
Ek = Ek * 10 ^ 8
HanStr = Right(HanStr, Len(HanStr) - InStr(HanStr, "억"))
End If
If InStr(HanStr, "만") <> 0 Then
Ma = makeStr(Left(HanStr, InStr(HanStr, "만") - 1))
Ma = Ma * 10 ^ 4
HanStr = Right(HanStr, Len(HanStr) - InStr(HanStr, "만"))
End If
If Len(HanStr) <> 0 Then
El = makeStr(HanStr)
End If
HanToNum = Jo + Ek + Ma + El
End Function
Function makeStr(patStr As String)
Dim Chen, Bak, Sib, El As Long
If InStr(patStr, "천") <> 0 Then
Chen = make123(Left(patStr, InStr(patStr, "천") - 1))
Chen = Chen * 10 ^ 3
patStr = Right(patStr, Len(patStr) - InStr(patStr, "천"))
End If
If InStr(patStr, "백") <> 0 Then
Bak = make123(Left(patStr, InStr(patStr, "백") - 1))
Bak = Bak * 10 ^ 2
patStr = Right(patStr, Len(patStr) - InStr(patStr, "백"))
End If
If InStr(patStr, "십") <> 0 Then
Sib = make123(Left(patStr, InStr(patStr, "십") - 1))
Sib = Sib * 10
patStr = Right(patStr, Len(patStr) - InStr(patStr, "십"))
End If
If Len(patStr) <> 0 Then
El = make123(patStr)
End If
makeStr = Chen + Bak + Sib + El
End Function
Function make123(patStr As String)
If patStr = "" Or patStr = "일" Then
make123 = 1
ElseIf patStr = "이" Then
make123 = 2
ElseIf patStr = "삼" Then
make123 = 3
ElseIf patStr = "사" Then
make123 = 4
ElseIf patStr = "오" Then
make123 = 5
ElseIf patStr = "육" Then
make123 = 6
ElseIf patStr = "칠" Then
make123 = 7
ElseIf patStr = "팔" Then
make123 = 8
ElseIf patStr = "구" Then
make123 = 9
End If
End Function
'---------------------------

댓글 없음:

댓글 쓰기