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

Excelで数字を英語の単語にすばやく変換するにはどうすればよいですか?

ワークシートに数値の列があり、次のスクリーンショットに示すように、それらを同等の英語の単語または英語の通貨の単語に変換する必要がある場合。 ここでは、数字を英語の単語にすばやく簡単に変更する方法について説明します。

ユーザー定義関数を使用して数値を英語の単語に変換する

ユーザー定義関数を使用して数値を通貨の単語に変換する

便利な機能で数字を通貨の単語に変換する


ユーザー定義関数を使用して数値を英語の単語に変換する

このタスクをExcelで直接解決するのに役立つ機能や数式はありませんが、ユーザー定義関数を作成して完了することができます。 次の手順で実行してください。

1. 押したまま Alt + F11 キー、そしてそれは開きます Microsoft Visual Basic forApplicationsウィンドウ.

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュールウィンドウ.

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。 次に、 入力します キーを押してセルC2を選択し、塗りつぶしハンドルをこの数式を含める範囲にドラッグします。 すべての数値は、対応する英語の単語に変換されています。

注意:このコードは整数に対してのみ機能しますが、XNUMX進数には適用されません。


ユーザー定義関数を使用して数値を通貨の単語に変換する

数字を英語の通貨の単語に変換する場合は、以下のVBAコードを適用する必要があります。

1. 押したまま Alt + F11 キー、そしてそれは開きます Microsoft Visual Basic forApplicationsウィンドウ.

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュールウィンドウ.

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初心者にとってやや面倒ですが、ここでは便利な機能を紹介します。 Kutools for Excel's 数字から言葉へ、このユーティリティを使用すると、数字を英語の単語または通貨の単語にすばやく綴ることができます。

ヒント:これを適用する 数字から言葉へ 機能、まず、ダウンロードする必要があります Kutools for Excel、次に機能をすばやく簡単に適用します。

インストールした後 Kutools for Excel、次のようにしてください。

1。 変換する数値のリストを選択し、をクリックします クツール > コンテンツ > 数字から言葉へ、スクリーンショットを参照してください:

2。 の中に 数字から通貨の単語 ダイアログボックス、チェック 英語 オプションから ESL, ビジネスESL <br> 中国語/フランス語、その他 リストボックスをクリックし、をクリックします Ok ボタンをクリックすると、すべての数字が英語の通貨の単語にスペルト小麦で表示されます。

ヒント:英語の単語を取得したい場合は、 通貨に変換されません からのチェックボックス オプション セクション、スクリーンショットを参照してください:

クリックしてKutoolsfor Excelと無料トライアルを今すぐダウンロードしてください!


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (62)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
こんにちはおはようこんにちは..おはようございます..お会いできてうれしいです。
このコメントは、サイトのモデレーターによって最小化されました
このコードは機能していません
このコメントは、サイトのモデレーターによって最小化されました
どうすれば最後の単語が「のみ」の単語に数値を変換できますか?
このコメントは、サイトのモデレーターによって最小化されました
問題解決?????
このコメントは、サイトのモデレーターによって最小化されました
他の列にもうXNUMXつの数式を追加する必要があります
= "Rs。"& ""&F6& "Only"&"。"
このコメントは、サイトのモデレーターによって最小化されました
番号に150.75や3.35のような(。)がある場合はどうでしょうか。 ありがとうを助けてください...
このコメントは、サイトのモデレーターによって最小化されました
数式の作成にご協力いただきありがとうございます。 サウジアラビアリヤルや英国ポンドなどの通貨の名前を追加する必要があるかどうかを教えてください。
このコメントは、サイトのモデレーターによって最小化されました
たとえば、4000を「FourThousand」という単語に変換します。「SaudiRiyals Four Thousand Only」のように翻訳したいので、数式に「Saudi Riyals&Only」がありません。
助けてください
このコメントは、サイトのモデレーターによって最小化されました
モジュール内の上記の式が繰り返され、MicrosoftWebサイトからコピーされます。

元のリンクを参照して、MicrosoftUpdateをフォローしてください。

https://support.microsoft.com/en-in/help/213360/how-to-convert-a-numeric-value-into-english-words-in-excel
このコメントは、サイトのモデレーターによって最小化されました
親愛なるこのコードは、この行に構文エラーを示しています
セント=GetTens(Left(Mid(MyNumber、DecimalPlace + 1)&_ "00"、2))

あなたは私を助けることができます..??できるだけ早く私に返信してください
このコメントは、サイトのモデレーターによって最小化されました
単語と単語の間に追加します。 百四十二百二十六の代わりに百四十千、五百二十六。 その文は適切な英語ではないのでよく理解されていないかもしれません。
このコメントは、サイトのモデレーターによって最小化されました
このコードは永続的に機能していません...シートを閉じたり開いたりすると、機能しません
このコメントは、サイトのモデレーターによって最小化されました
ファイルを「マクロ対応ワークブック」として保存し、開いたときにマクロを有効にします
このコメントは、サイトのモデレーターによって最小化されました
たくさんありがとうuはコードです
このコメントは、サイトのモデレーターによって最小化されました
たとえば、2500を「二千五百」という単語に変換します。これを「二千五百のみ」のように翻訳したいので、数式に欠落しているのは「のみ」です。
助けてください
このコメントは、サイトのモデレーターによって最小化されました
use = CONCATENATE(NumberstoWords(A1)、 "Only")
このコメントは、サイトのモデレーターによって最小化されました
本当にありがとうございます、あなたの公式は完璧で、良かったです、アッラーはあなたを祝福します。
よろしく。
このコメントは、サイトのモデレーターによって最小化されました
公式にはないラククロア。 親切に私を助けてください。
このコメントは、サイトのモデレーターによって最小化されました
たとえば、2500を「二千五百」という単語に変換します。「二千五百セント五十のみ」のように翻訳したいので、助けてください。
このコメントは、サイトのモデレーターによって最小化されました
セントのスペルがわかりません...私の金額は123.50で、「XNUMX」を取得しました...すべての数式をコピーしました。助けてください
このコメントは、サイトのモデレーターによって最小化されました
洛叉とカロールはどうですか
このコメントは、サイトのモデレーターによって最小化されました
どうもありがとう
このコメントは、サイトのモデレーターによって最小化されました
大丈夫。 しかし、この式が恒久的に機能していないと言って申し訳ありません...私は昼休みのためにワークブックを閉じました。 昼食後、ファイルを開きましたが、数式が機能していませんでした。 #NAME?のようなエラーが表示されます。 親切に親密な解決策をお願いします。
このコメントは、サイトのモデレーターによって最小化されました
感謝


その動作! :)
このコメントは、サイトのモデレーターによって最小化されました
私の金額が「618475」の場合、「XNUMX lac XNUMX千XNUMX」ではなく、「六百一十八千四百七十五」と表示されるバグがあります。
このコメントは、サイトのモデレーターによって最小化されました
私も同じ問題を抱えてる
このコメントは、サイトのモデレーターによって最小化されました
これは問題ではありません、それは言葉で書く形式です
このコメントは、サイトのモデレーターによって最小化されました
ありがとうございました extendOfficea
ここにはまだコメントが投稿されていません
もっと読む
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護