Note: The other languages of the website are Google-translated. Back to English

如何在Excel中快速將數字轉換為英文單詞?

如果您在工作表中有一列數字值,現在需要將它們設置為等效的英語單詞或英語貨幣單詞,如下面的屏幕截圖所示。 在這裡,我將討論如何快速,輕鬆地將數字更改為英語單詞。

使用用戶定義的功能將數字轉換為英文單詞

使用用戶定義的功能將數字轉換為貨幣詞

使用有用的功能將數字轉換為貨幣單詞


使用用戶定義的功能將數字轉換為英文單詞

沒有功能或公式可以幫助您直接在Excel中解決此任務,但是您可以創建一個用戶定義函數來完成該任務。 請執行以下步驟:

1. 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic應用程序窗口.

2。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊窗口.

Function NumberstoWords(ByVal MyNumber)
'Update by Extendoffice
Dim xStr As String
Dim xFNum As Integer
Dim xStrPoint
Dim xStrNumber
Dim xPoint As String
Dim xNumber As String
Dim xP() As Variant
Dim xDP
Dim xCnt As Integer
Dim xResult, xT As String
Dim xLen As Integer
On Error Resume Next
xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP > 0 Then
xPoint = " point "
xStr = Mid(xNumber, xDP + 1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum = 1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum, 1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNum
xNumber = Trim(Left(xNumber, xDP - 1))
End If
xCnt = 0
xResult = ""
xT = ""
xLen = 0
xLen = Int(Len(Str(xNumber)) / 3)
If (Len(Str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1
Do While xNumber <> ""
If xLen = xCnt Then
xT = GetHundredsDigits(Right(xNumber, 3), False)
Else
If xCnt = 0 Then
xT = GetHundredsDigits(Right(xNumber, 3), True)
Else
xT = GetHundredsDigits(Right(xNumber, 3), False)
End If
End If
If xT <> "" Then
xResult = xT & xP(xCnt) & xResult
End If
If Len(xNumber) > 3 Then
xNumber = Left(xNumber, Len(xNumber) - 3)
Else
xNumber = ""
End If
xCnt = xCnt + 1
Loop
xResult = xResult & xPoint
NumberstoWords = xResult
End Function
Function GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As String
Dim xStrNum As String
Dim xStr As String
Dim xI As Integer
Dim xBB As Boolean
xStrNum = xHDgt
xRStr = ""
On Error Resume Next
xBB = True
If Val(xStrNum) = 0 Then Exit Function
xStrNum = Right("000" & xStrNum, 3)
xStr = Mid(xStrNum, 1, 1)
If xStr <> "0" Then
xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred "
Else
If xB Then
xRStr = "and "
xBB = False
Else
xRStr = " "
xBB = False
End If
End If
If Mid(xStrNum, 2, 2) <> "00" Then
xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)
End If
GetHundredsDigits = xRStr
End Function
Function GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As String
Dim xI As Integer
Dim xArr_1() As Variant
Dim xArr_2() As Variant
Dim xT As Boolean
xArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = True
On Error Resume Next
If Val(Left(xTDgt, 1)) = 1 Then
xI = Val(Right(xTDgt, 1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
Else
xI = Val(Left(xTDgt, 1))
If Val(Left(xTDgt, 1)) > 1 Then
If xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
xT = False
End If
If xStr = "" Then
If xB Then
xStr = "and "
End If
End If
If Right(xTDgt, 1) <> "0" Then
xStr = xStr & GetDigits(Right(xTDgt, 1))
End If
End If
GetTenDigits = xStr
End Function
Function GetDigits(xDgt)
Dim xStr As String
Dim xArr_1() As Variant
xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume Next
xStr = xArr_1(Val(xDgt))
GetDigits = xStr
End Function

3。 保存並關閉此代碼,然後返回工作表,在空白單元格中輸入此公式 = NumberstoWords(A2)( A2 是您要將數字轉換為英文單詞的單元格),請參見屏幕截圖:

4。 然後按 Enter 鍵,然後選擇單元格C2,然後將填充手柄拖動到要包含此公式的範圍。 所有數值均已轉換為其相應的英語單詞。

備註:此代碼僅適用於整數,但不適用於十進制數字。


使用用戶定義的功能將數字轉換為貨幣詞

如果要將數字轉換為英語貨幣單詞,則應應用下面的VBA代碼。

1. 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic應用程序窗口.

2。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊窗口.

Function SpellNumberToEnglish(ByVal pNumber)
'Update by Extendoffice
Dim Dollars, Cents
arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
pNumber = Trim(Str(pNumber))
xDecimal = InStr(pNumber, ".")
If xDecimal > 0 Then
    Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
    pNumber = Trim(Left(pNumber, xDecimal - 1))
End If
xIndex = 1
Do While pNumber <> ""
    xHundred = ""
    xValue = Right(pNumber, 3)
    If Val(xValue) <> 0 Then
        xValue = Right("000" & xValue, 3)
        If Mid(xValue, 1, 1) <> "0" Then
            xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
        End If
        If Mid(xValue, 2, 1) <> "0" Then
            xHundred = xHundred & GetTens(Mid(xValue, 2))
        Else
            xHundred = xHundred & GetDigit(Mid(xValue, 3))
        End If
    End If
    If xHundred <> "" Then
        Dollars = xHundred & arr(xIndex) & Dollars
    End If
    If Len(pNumber) > 3 Then
        pNumber = Left(pNumber, Len(pNumber) - 3)
    Else
        pNumber = ""
    End If
    xIndex = xIndex + 1
Loop
Select Case Dollars
    Case ""
        Dollars = "No Dollars"
    Case "One"
        Dollars = "One Dollar"
    Case Else
        Dollars = Dollars & " Dollars"
End Select
Select Case Cents
    Case ""
        Cents = " and No Cents"
    Case "One"
        Cents = " and One Cent"
    Case Else
        Cents = " and " & Cents & " Cents"
End Select
SpellNumberToEnglish = Dollars & Cents
End Function
Function GetTens(pTens)
Dim Result As String
Result = ""
If Val(Left(pTens, 1)) = 1 Then
    Select Case Val(pTens)
        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
Select Case Val(Left(pTens, 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(pTens, 1))
End If
GetTens = Result
End Function
Function GetDigit(pDigit)
Select Case Val(pDigit)
    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

3。 保存此代碼,然後返回工作表,在空白單元格中,輸入此公式 = SpellNumberToEnglish(A2)( A2 是您要將數字轉換為英語貨幣單詞的單元格),然後將填充手柄向下拖動至您要應用此公式的單元格,所有數字均已拼寫為英語貨幣單詞,請參見屏幕截圖:


使用有用的功能將數字轉換為貨幣單詞

上面的代碼對於Excel初學者來說有些麻煩,在這裡,我將介紹一個有用的功能, Excel的Kutools's 數字到單詞,使用此實用程序,您可以快速將數字拼寫為英文單詞或貨幣單詞。

提示:要應用此 數字到單詞 功能,首先,您應該下載 Excel的Kutools,然後快速輕鬆地應用該功能。

安裝後 Excel的Kutools,請這樣做:

1。 選擇要轉換的數字列表,然後單擊 庫工具 > 內容 > 數字到單詞,請參見屏幕截圖:

2。 在 數字到貨幣單詞 對話框,檢查 English 選項從 語言 列錶框,然後單擊 Ok 按鈕,您將看到所有數字都已用英語貨幣單詞拼出:

保養竅門:如果要獲取英語單詞,請檢查 不轉換為貨幣 複選框 選項 部分,請參見屏幕截圖:

點擊下載Kutools for Excel並立即免費試用!


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (62)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
早上好嗨..早上好..很高興認識你。
網站主持人對此評論進行了最小化
此代碼不起作用
網站主持人對此評論進行了最小化
先生,我怎樣才能將數字轉換為最後一個單詞“Only”的單詞?
網站主持人對此評論進行了最小化
問題解決?????
網站主持人對此評論進行了最小化
您必須在其他列中再添加一個公式
="盧比"&""&F6&"僅"&"。"
網站主持人對此評論進行了最小化
如果數字有一個 (.) 像 150.75 或 3.35 怎麼樣? 請幫忙謝謝...
網站主持人對此評論進行了最小化
感謝您對創建公式的支持。 您能否告訴我們是否需要添加貨幣名稱……例如沙特里亞爾或英鎊。
網站主持人對此評論進行了最小化
例如,我們將 4000 轉換為單詞“四千”,我想將其翻譯為“僅限沙特里亞爾四千”,因此公式中缺少“沙特里亞爾 & Only”
請幫忙
網站主持人對此評論進行了最小化
上述模塊中的公式重複並從微軟網站複製..

請查看原始鏈接並關注 Microsoft Update..

https://support.microsoft.com/en-in/help/213360/how-to-convert-a-numeric-value-into-english-words-in-excel
網站主持人對此評論進行了最小化
親愛的,這段代碼在這一行顯示語法錯誤
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) &_"00", 2))

你能幫我..??盡快回复我
網站主持人對此評論進行了最小化
添加單詞和單詞之間。 十四萬五百二十六而不是十四萬五百二十六。 該句子可能由於其不正確的英語而無法很好地理解。
網站主持人對此評論進行了最小化
此代碼無法正常工作...如果我們關閉並打開工作表,則無法正常工作
網站主持人對此評論進行了最小化
將文件另存為“啟用宏的工作簿”並在打開時啟用宏
網站主持人對此評論進行了最小化
謝謝你的很多代碼
網站主持人對此評論進行了最小化
例如我們將 2500 轉換為單詞“兩千五百”,我想將其翻譯為“僅兩千五百”,因此公式中缺少“僅”
請幫忙
網站主持人對此評論進行了最小化
使用 =CONCATENATE(NumberstoWords(A1)," Only")
網站主持人對此評論進行了最小化
真的謝謝親愛的,你的配方很完美,很好,真主保佑你。
的問候。
網站主持人對此評論進行了最小化
數億美元不在公式中。 請幫助我。
網站主持人對此評論進行了最小化
例如我們將 2500 轉換成單詞“XNUMX”,我想把它翻譯成“XNUMX & Cents XNUMX Only”所以請你幫忙
網站主持人對此評論進行了最小化
我沒有把美分拼出來……我的金額是 123.50,得到“一百二十三”……複製了所有公式,請幫忙
網站主持人對此評論進行了最小化
十萬和千萬呢
網站主持人對此評論進行了最小化
多謝
網站主持人對此評論進行了最小化
美好的。 但很抱歉,這個公式不能永久有效......我關閉了午休的工作簿。 午餐後我打開了文件,但公式不起作用。 顯示 #NAME? 之類的錯誤。 請提供貼心的解決方案。
網站主持人對此評論進行了最小化
謝謝


它的工作! :)
網站主持人對此評論進行了最小化
當我的金額為“618475”時出現錯誤,它顯示“XNUMX”而不是“XNUMX”。
網站主持人對此評論進行了最小化
我也有同樣的問題
網站主持人對此評論進行了最小化
這不是問題,它是一種用文字書寫的格式
網站主持人對此評論進行了最小化
謝謝 extendOfficea
這裡還沒有評論
載入更多
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護