⑴ 在EXCEL的一個表格中輸入金額,在另一個表格中會自動翻譯成大寫
單擊一個帶轉換的單元格,命名為X,然後在其他任何一單元格輸入=IF(ROUND(x,2)<0,"無效數值",IF(ROUND(x,2)=0,"零",IF(ROUND(x,2)<1,"",TEXT(INT(ROUND(x,2)),"[dbnum2]")&"元")&IF(INT(ROUND(x,2)*10)-INT(ROUND(x,2))*10=0,IF(INT(ROUND(x,2))*(INT(ROUND(x,2)*100)-INT(ROUND(x,2)*10)*10)=0,"","零"),TEXT(INT(ROUND(x,2)*10)-INT(ROUND(x,2))*10,"[dbnum2]")&"角")&IF((INT(ROUND(x,2)*100)-INT(ROUND(x,2)*10)*10)=0,"整",TEXT((INT(ROUND(x,2)*100)-INT(ROUND(x,2)*10)*10),"[dbnum2]")&"分"))),看看,保證符合財經大寫的表達。
⑵ EXCEL函數如何將數字轉化成英文大寫金額
使用自定義函數
步驟:ALT+F11,插入模塊,復制下方代碼
然後在需要使用的地方輸入公式:=SpellNumber(單元格地址)
效果圖如下,B1公式為=SpellNumber(A1)
DimDollars,Temp
DimDecimalPlace,Count
ReDimPlace(9)AsString
Application.VolatileTrue
Place(2)="THOUSAND"
Place(3)="MILLION"
Place(4)="BILLION"
Place(5)="TRILLION"
MyNumber=Trim(Str(MyNumber))
DecimalPlace=InStr(MyNumber,".")
IfDecimalPlace>0Then
Cents=GetTens(Left(Mid(MyNumber,DecimalPlace+1)&"00",2))
MyNumber=Trim(Left(MyNumber,DecimalPlace-1))
EndIf
Count=1
DoWhileMyNumber<>""
Temp=GetHundreds(Right(MyNumber,3))
IfTemp<>""ThenDollars=Temp&Place(Count)&Dollars
IfLen(MyNumber)>3Then
MyNumber=Left(MyNumber,Len(MyNumber)-3)
Else
MyNumber=""
EndIf
Count=Count+1
Loop
SelectCaseDollars
Case""
Dollars=""
Case"One"
Dollars="OneDollar"
CaseElse
Dollars="USDOLLARS"&Dollars
EndSelect
SpellNumber=Dollars
EndFunction
FunctionGetHundreds(ByValMyNumber)
DimResultAsString
IfVal(MyNumber)=0ThenExitFunction
MyNumber=Right("000"&MyNumber,3)
IfMid(MyNumber,1,1)<>"0"Then
Result=GetDigit(Mid(MyNumber,1,1))&"HUNDRED"
EndIf
IfMid(MyNumber,2,1)<>"0"Then
Result=Result&GetTens(Mid(MyNumber,2))
Else
Result=Result&GetDigit(Mid(MyNumber,3))
EndIf
GetHundreds=Result
EndFunction
FunctionGetTens(TensText)
DimResultAsString
Result=""
IfVal(Left(TensText,1))=1Then
SelectCaseVal(TensText)
Case10:Result="Ten"
Case11:Result="ELEVEN"
Case12:Result="TWELVE"
Case13:Result="THIRTEEN"
Case14:Result="FOURTEEN"
Case15:Result="FIFTEEN"
Case16:Result="SIXTEEN"
Case17:Result="SEVENTEEN"
Case18:Result="EIGHTEEN"
Case19:Result="NINETEEN"
CaseElse
EndSelect
Else
SelectCaseVal(Left(TensText,1))
Case2:Result="ANDTWENTY"
Case3:Result="ANDTHIRTY"
Case4:Result="ANDFORTY"
Case5:Result="ANDFIFTY"
Case6:Result="ANDSIXTY"
Case7:Result="ANDSEVENTY"
Case8:Result="ANDEIGHTY"
Case9:Result="ANDNINETY"
CaseElse
EndSelect
Result=Result&GetDigit_
(Right(TensText,1))
EndIf
GetTens=Result
EndFunction
FunctionGetDigit(Digit)
SelectCaseVal(Digit)
Case1:GetDigit="ONE"
Case2:GetDigit="TWO"
Case3:GetDigit="THREE"
Case4:GetDigit="FOUR"
Case5:GetDigit="FIVE"
Case6:GetDigit="SIX"
Case7:GetDigit="SEVEN"
Case8:GetDigit="EIGHT"
Case9:GetDigit="NINE"
CaseElse:GetDigit=""
EndSelect
EndFunction
⑶ 在excel中將數字金額變成中文大寫和英文金額
設置單元格格式,數字,特殊,中文大寫數字,這樣就可以了。要加一個元整,需要點了特殊之後,選中中文大寫數字,然後點擊自定義,會看見 [DBNum2][$-804]G/通用格式 這個時候在這句話後面加上 "元整" ,注意雙引號要是英文輸入狀態下的雙引號。
⑷ excel怎麼把數字金額自動生成英文大寫金額 比如100 寫成One Hundred Only
需要用於VBA
網路經驗帖:
http://jingyan..com/article/f3ad7d0ffe9a1409c2345b54.html
微軟官網:
https://support.microsoft.com/zh-cn/kb/213360
⑸ excel中如何將阿拉伯數字自動轉換成英文大寫
具體公式如下:
B1公式下拉:
=SUBSTITUTE(SUBSTITUTE(IF(-RMB(A1,2),TEXT(A1,";負")&TEXT(INT(ABS(A1)+0.5%),"[dbnum2]G/通用格式圓;;")&TEXT(RIGHT(RMB(A1,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(A1^2<1,,"零")),"零分","整")
⑹ WPS表格文件裡面的阿拉伯數字怎麼能自動轉換成英文金額呢
有兩種方法可以把阿拉伯數字轉換成英文。
一、用公式比較復雜
="US DOLLARS "&UPPER(TRIM(IF(VALUE(RIGHT(INT(A1/1000000000),3))=0,"",LOOKUP(VALUE(LEFT(TEXT(RIGHT(INT(A1/1000000000),3),"000"),1)),{0,1,2,3,4,5,6,7,8,9;"","one","two","three","four","five","six","seven","eight","nine"})&IF(LEFT(TEXT(RIGHT(INT(A1/1000000000),3),"000"),1)="0"," "," hundred ")&IF(MID(TEXT(RIGHT(INT(A1/1000000000),3),"000"),2,1)="1",LOOKUP(VALUE(MID(TEXT(RIGHT(INT(A1/1000000000),3),"000"),2,2)),{10,11,12,13,14,15,16,17,18,19;"ten","eleven","twelve","thirteen","fourteen","fiifteen","sixteen","seventeen","eighteen","nineteen"}),LOOKUP(VALUE(MID(TEXT(RIGHT(INT(A1/1000000000),3),"000"),2,1)),{0,1,2,3,4,5,6,7,8,9;"","","twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"}))&IF(MID(TEXT(RIGHT(INT(A1/1000000000),3),"000"),2,1)="1","",LOOKUP(VALUE(RIGHT(TEXT(RIGHT(INT(A1/1000000000),3),"000"),1)),{0,1,2,3,4,5,6,7,8,9;""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"}))&" billion ")&IF(VALUE(RIGHT(INT(A1/1000000),3))=0,"",LOOKUP(VALUE(LEFT(TEXT(RIGHT(INT(A1/1000000),3),"000"),1)),{0,1,2,3,4,5,6,7,8,9;"","one","two","three","four","five","six","seven","eight","nine"})&IF(LEFT(TEXT(RIGHT(INT(A1/1000000),3),"000"),1)="0"," "," hundred ")&IF(MID(TEXT(RIGHT(INT(A1/1000000),3),"000"),2,1)="1",LOOKUP(VALUE(MID(TEXT(RIGHT(INT(A1/1000000),3),"000"),2,2)),{10,11,12,13,14,15,16,17,18,19;"ten","eleven","twelve","thirteen","fourteen","fiifteen","sixteen","seventeen","eighteen","nineteen"}),LOOKUP(VALUE(MID(TEXT(RIGHT(INT(A1/1000000),3),"000"),2,1)),{0,1,2,3,4,5,6,7,8,9;"","","twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"}))&IF(MID(TEXT(RIGHT(INT(A1/1000000),3),"000"),2,1)="1","",LOOKUP(VALUE(RIGHT(TEXT(RIGHT(INT(A1/1000000),3),"000"),1)),{0,1,2,3,4,5,6,7,8,9;""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"}))&" million ")&IF(VALUE(RIGHT(INT(A1/1000),3))=0,"",LOOKUP(VALUE(LEFT(TEXT(RIGHT(INT(A1/1000),3),"000"),1)),{0,1,2,3,4,5,6,7,8,9;"","one","two","three","four","five","six","seven","eight","nine"})&IF(LEFT(TEXT(RIGHT(INT(A1/1000),3),"000"),1)="0"," "," hundred ")&IF(MID(TEXT(RIGHT(INT(A1/1000),3),"000"),2,1)="1",LOOKUP(VALUE(MID(TEXT(RIGHT(INT(A1/1000),3),"000"),2,2)),{10,11,12,13,14,15,16,17,18,19;"ten","eleven","twelve","thirteen","fourteen","fiifteen","sixteen","seventeen","eighteen","nineteen"}),LOOKUP(VALUE(MID(TEXT(RIGHT(INT(A1/1000),3),"000"),2,1)),{0,1,2,3,4,5,6,7,8,9;"","","twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"}))&IF(MID(TEXT(RIGHT(INT(A1/1000),3),"000"),2,1)="1","",LOOKUP(VALUE(RIGHT(TEXT(RIGHT(INT(A1/1000),3),"000"),1)),{0,1,2,3,4,5,6,7,8,9;""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"}))&" thousand ")&LOOKUP(VALUE(LEFT(TEXT(RIGHT(INT(A1),3),"000"),1)),{0,1,2,3,4,5,6,7,8,9;"","one","two","three","four","five","six","seven","eight","nine"})&IF(LEFT(TEXT(RIGHT(INT(A1),3),"000"),1)="0"," "," hundred ")&IF(MID(TEXT(RIGHT(INT(A1),3),"000"),2,1)="1",LOOKUP(VALUE(MID(TEXT(RIGHT(INT(A1),3),"000"),2,2)),{10,11,12,13,14,15,16,17,18,19;"ten","eleven","twelve","thirteen","fourteen","fiifteen","sixteen","seventeen","eighteen","nineteen"}),LOOKUP(VALUE(MID(TEXT(RIGHT(INT(A1),3),"000"),2,1)),{0,1,2,3,4,5,6,7,8,9;"","","twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"}))&IF(MID(TEXT(RIGHT(INT(A1),3),"000"),2,1)="1","",LOOKUP(VALUE(RIGHT(TEXT(RIGHT(INT(A1),3),"000"),1)),{0,1,2,3,4,5,6,7,8,9;""," one"," two"," three"," four"," five"," six"," seven"," eight"," nine"}))&IF(VALUE(RIGHT(TEXT(A1,"0.00"),2))=0,""," AND CENTS "&IF(VALUE(RIGHT(TEXT(A1,"0.00"),2))<20,LOOKUP(VALUE(RIGHT(TEXT(A1,"0.00"),2)),{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19;"","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fiifteen","sixteen","seventeen","eighteen","nineteen"}),LOOKUP(VALUE(LEFT(RIGHT(TEXT(A1,"0.00"),2),1)),{2,3,4,5,6,7,8,9;"twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"})&" "&LOOKUP(VALUE(RIGHT(TEXT(A1,"0.00"),1)),{0,1,2,3,4,5,6,7,8,9;"","one","two","three","four","five","six","seven","eight","nine"})))&" ONLY"))
⑺ excel怎麼設置把金額自動轉化為英文大寫
按Alt-F11, 調出VBA,選插入->模塊,然後在窗口中輸入後面所附代碼,按Alt-Q退出。
然後在需要英文數字的地方輸入公式=SpellNumber(A1),A1根據你數字的那個單元格進行修改。
就可以了。
'****************
' Main Function *
'****************
Function SpellNumber(ByVal MyNumber)
Dim Dollars, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
' String representation of amount.
MyNumber = Trim(Str(MyNumber))
' Position of decimal place 0 if none.
DecimalPlace = InStr(MyNumber, ".")
' Convert cents and set MyNumber to dollar amount.
If DecimalPlace > 0 Then
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case Dollars
Case ""
Dollars = "U.S. Dollars Zero"
Case "One"
Dollars = "U.S. Dollars One"
Case Else
Dollars = "U.S. Dollars " & Dollars
End Select
Select Case Cents
Case ""
Cents = " and Cents Zero"
Case "One"
Cents = " and One Cent"
Case Else
Cents = " and Cents " & Cents
End Select
SpellNumber = 「Say 」 & Dollars & Cents & "Only***"
SpellNumber = UCase(SpellNumber)
End Function
'*******************************************
' Converts a number from 100-999 into text *
'*******************************************
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
' Convert the hundreds place.
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
' Convert the tens and ones place.
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
'*********************************************
' Converts a number from 10 to 99 into text. *
'*********************************************
Function GetTens(TensText)
Dim Result As String
Result = "" ' Null out the temporary function value.
If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
End Select
Else ' If value between 20-99...
Select Case Val(Left(TensText, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit(Right(TensText, 1)) ' Retrieve ones place.
End If
GetTens = Result
End Function
'*******************************************
' Converts a number from 1 to 9 into text. *
'*******************************************
Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
⑻ excel2007版本中如何將阿拉伯數字自動轉換成英文大寫
選取數字區域,比如A1:A100,右鍵單擊,之後,---設置單元格格式---數字---貨幣---在該頁面右側的貨幣符號框右部有一倒三角按鈕,點擊,選取美元符號,確定,即可.
⑼ excel中如何將阿拉伯數字自動轉換成英文大寫
自訂函數的使用方法和內建函數大同小異。
使用插入函數的方式來使用該函數:
<一>
插入函數的方式可以從功能表的插入>>函數
或
一般工具列的自動加總旁按下拉式選單選其他函數
或
資料編輯列上的 Fx 按鈕
以上三種方法皆可插入函數。
<二>
函數類別選使用者定義
<三>
函數名稱選自訂函數SpellNumber>>確定
<四>
輸入數字或選參照的儲存格>>確定
上述方式可能會依不同的 Excel 版本而略有差異。
自訂函數的共用性與流通性
如果你要在本機的任何一個活頁簿都可以使用這個函數,則建議你建立一個個人巨集活頁簿,並將該函數放在個人巨集活頁簿內。
如果要使用這個函數的活頁簿會四處在網路上流通的話,則建議將該函數附屬在該活頁簿內,讓它隨著檔案在網路上奔走,不然當檔案到了其他人的電腦上,而其他人的 excel 內並無 SpellNumber 這個函數時,則會出現 #NAME? 的錯誤值。
已記錄
--------------------------------------------------------------------------------
BEFORE ASKING, YOU SHOULD RTFH, RTFM, STFW...
leonchou
論壇維護群
離線
文章: 1160
Re: 將數字轉換成英文的貨幣表示法
« 回覆文章 #1 於: 2005-03-27, 23:51:34 »
--------------------------------------------------------------------------------
上述的微軟網頁亦可由此進入
http://support.microsoft.com/support/kb/articles/Q213/3/60.ASP
另提供一以內建函數轉英文大寫金額的方式:
在此提供的是使用 Excel 內建工作表函數達成的
[數字轉英文大寫] 功能,無巨集、無VBA。
可自選貨幣(Currency)符號,適合外國支票、匯票或相關文件使用。
內建函數應該對一般人來說比較容易理解。
由於這個是以前用 Excel97 做的,如果你認為有任何
可改進之處,或新版有更理想的做法,
(其實新版應該要納為內建功能了不是嗎)
歡迎提出來討論。
[2003/12/19]
1.修改為支援到千萬(8位數),
2.修正了小數超過兩位時的Bug (采四捨五入方式)。
[2004/3/22]
修正沒有小數時的 Bug
(例如 123 會顯示成 ONE HUNDRED TWENTY THREE AND CENTS THREE)
[2004/4/9]
修正小數只有一位時的Bug,例如 123.40,它會顯示成
one hundred twenty three and cents FORTY FOUR only.