KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で数値を単語に変換する – 総合ガイド

著者Xiaoyang変更日

数値を単語表記に変換する必要があるのは、財務報告書、法的文書、請求書、小切手などの場面です。Excel にはこの機能が標準搭載されていませんが、Microsoft 365 の組み込み関数、VBA ユーザー定義関数、信頼性の高いサードパーティ製アドインなど、複数の確実な方法があります。この包括的なガイドでは、それぞれの方法を詳しく解説し、そのメリットと制限を明らかにすることで、あなたの特定のニーズに最適なアプローチを選ぶお手伝いをします。

Excelで数値を単語に変換する様子を示すスクリーンショット

Excel で単語に変換するを変換する方法

ここでは、Excel で数値を通貨単語に変換するための3 つの効果的な方法をご紹介します。お使いの Excel バージョンやユースケースに最も適したものをぜひお選びください。


方法 1:新しい組み込み関数を使用(Microsoft 365 のみ)

Microsoft 365 向けの Excel をご利用の場合は、新しい TRANSLATE 関数を活用し、工夫を凝らした数式の組み合わせで通貨単語への変換を簡単に実現できます。

以下のスクリーンショットに示すように、範囲 A2:A5 の通貨数値を単語に変換するには、次の数式をご利用ください。

  1. 空白セル(例:B2)を選択し、次の数式を入力してください。
    =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(B9),「th」,「en」)),「baht」,「dollars」),「satang」,「cents」))
  2. 「Enter」キーを押して確定し、「フィルハンドル」を下にドラッグして他の行にも適用しましょう。
    新しい関数を使用して数値を単語に変換する方法を示すスクリーンショット

数式の動作原理:

  • BAHTTEXT:数値をタイバーツ表記のテキスト(例:「หนึ่งบาทถ้วน」)に変換します。
  • TRANSLATE(。。。、「th」、「en」):テキストをある言語から別の言語に翻訳します(Microsoft 365 が必要)。ここでは、タイ語から英語へと翻訳します。
  • LOWER():一貫性を保つため、文字列全体を小文字に統一します。
  • SUBSTITUTE():「baht」や「satang」などの通貨単位を、お好みの用語に置き換えます。
  • PROPER():各単語の先頭文字を大文字に変換し、適切な書式に整えます。

他の通貨への対応:

上記の数式は米ドルで出力されますが、主要単位と補助単位を置き換えることで、他の通貨にも対応可能です。

  • 「dollars」を対象通貨の主要単位(例:英国ポンドの場合は「pounds」)に置き換えます。
  • 「cents」を補助単位(例:英国ポンドの場合は「pence」)に置き換えます。

以下の表には、対応している通貨とそれぞれに使用可能な数式を示しています。

通貨主要単位の置換補助単位の置換数式の例(値がセル A2 にあると仮定)
USDドルセント=PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),「th」,「en」)),「baht」,「dollars」),「satang」,「cents」))
GBPポンドペンス=PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),「th」,「en」)),「baht」,「pounds」),「satang」,「pence」))
EURユーロセント=PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),「th」,「en」)),「baht」,「euros」),「satang」,「cents」))
MYRリンギットセン=PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),「th」,「en」)),「baht」,「ringgit」),「satang」,「sen」))

この方法の制限事項:

  • TRANSLATE()関数は、Microsoft 365 版のExcel でのみご利用いただけます。
  • 出力結果は、BAHTTEXT()関数の書式設定精度に大きく左右されます。
  • この方法は、タイバーツのように主要単位と補助単位(例:ドルとセント)を持つ通貨に最適です。同様の通貨構造を持たない通貨にはおすすめできません。

方法2:VBA ユーザー定義関数を使用

このセクションでは、VBA ベースのユーザー定義関数(UDF)を使って数値を英語の通貨表現に変換する方法をご紹介します。デフォルトでは、米国ドル(USD)向けに最適化されています。

手順1:VBA コードを挿入

  1. この機能を使いたいワークシートを開いてください。
  2. 「Alt」+「F11」を押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。
  3. エディターで[挿入]>[標準モジュール]をクリックし、次の VBA コードを貼り付けてください。
    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
    コードエディターを示すスクリーンショット
  4. 「Alt」+「Q」を押すと、ワークシートに戻ります。

手順2:関数を適用

  1. セルに次の数式を入力して、「Enter」キーを押してください。
    =SpellNumberToEnglish(A2)
  2. 必要に応じてフィルハンドルをドラッグして他の行にも適用すると、数値が次のように単語で表記されます。
    ユーザー定義関数とその結果を示すスクリーンショット

他の通貨への対応:

この関数は「Dollar(s)」および「Cent(s)」で出力され、これらは USD 専用にハードコードされています。他の通貨(例:英国ポンド)に変換するには、以下のコード行で主要単位と補助単位を手動で変更してください。

他の通貨に対応するようにコードを変更する方法を示すスクリーンショット

マクロ有効ファイルとしてブックを保存

デフォルトでは、ブックをマクロ有効ブックとして保存しない限り、VBA 関数は保持されません。

  1. 「Ctrl」+「S」で保存できます。
  2. マクロに関するポップアップメッセージで「戻る」ボタンを選択してください。
    注:ポップアップに「はい」「いいえ」「ヘルプ」のみが表示される場合は、「いいえ」をクリックしてください。
    他の通貨に対応するようにコードを変更する方法を示すスクリーンショット
  3. 「名前を付けて保存」ウィンドウで。
    1. 保存先をお選びください。
    2. 「保存形式を指定」のドロップダウンリストから、「Excel マクロ有効ブック(*。xlsm)」を選択してください。
    3. 「保存」をクリックしてください。
      他の通貨に対応するようにコードを変更する方法を示すスクリーンショット

SpellNumberToEnglish VBA 関数の制限事項

複数言語への対応なし
  • この関数は英語でのみ結果を出力します。
  • フランス語やドイツ語など他の言語には対応しておらず、インド英語で見られる「ルピー・ワン・ハンドレッド」のように、数字の前に通貨単位が来る形式の通貨構造にも対応していません。
標準 Excel ファイルに保存されない
  • マクロ有効ブック(.xlsm)として保存しないと、Excel を閉じた際にこの関数は失われてしまいます。
  • .xlsx ファイルとして通常保存すると、すべての VBA コードは削除されてしまいます。
共有時にマクロのセキュリティ警告が表示される
  • マクロ有効ファイルを他者に送信すると、開く際に「セキュリティ警告:マクロは無効になっています」というプロンプトが表示されます。
  • 一部のユーザーは、潜在的なセキュリティリスクを懸念してマクロの有効化をためらったり、そのファイルの使用を避ける可能性があります。
カスタマイズに VBA の知識が必要
  • 通貨の用語や書式を変更するには、VBA コードを手動で編集する必要があります。
  • マクロやスクリプトに不慣れなユーザーにはおすすめできません。

方法3:Kutools for Excel を使用(数式や VBA 不要)

「Kutools for Excel」がインストール済みの場合、「単語に変換する」機能を使えば、数値を英語(通貨またはプレーンテキスト)だけでなく、EUR、GBP、JPY など多数の他の言語・通貨にも簡単に変換できます。

Excel で「単語に変換する」作業をノーコードで行える、ユーザーフレンドリーかつ多機能なソリューションをお探しの場合は、Kutools for Excel の専用「単語に変換する」機能をご活用ください。この機能は以下の通りサポートしています。

  • 英語(USD、GBP、EUR など)
  • 多数の他の言語および通貨(例:日本円、インド・ルピー、中国元)
  • 通貨形式またはプレーンテキスト(例:「One Hundred Twenty-Three Dollars」ではなく「One Hundred Twenty-Three」)

使用手順:

  1. 変換したい数値が含まれるセルを選択してください。
  2. 「Kutools」>「コンテンツ」>「単語に変換する」を選択してください。
  3. 「数値を通貨単語に変換」ダイアログボックスで、次の操作を行ってください。
    1. 希望する言語と言語スタイルを選択してください(例:米国英語を選択すると、通貨が USD になります)。
    2. 「OK」をクリックしてください。
      数値を通貨単語に変換するダイアログボックスを示すスクリーンショット

オプション:「通貨単位に変換しない」にチェックを入れると、通貨単位(「dollars」や「cents」など)を含まない、シンプルな英単語で表示されます。

選択した数値は、設定に応じて適切な通貨単語に変換されます。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


逆変換:通貨単語を数値に変換

次のような英単語で記述された通貨金額のリストがある場合:

「123 ドル45 セント」

Excel でこれらを実際の数値(例:123.45)に変換したい場合は、次のようにカスタム VBA ユーザー定義関数(UDF)をご利用いただけます。

手順1:VBA エディターを開き、VBA コードを挿入

  1. Excel ワークブックを開きます。
  2. 「Alt」+「F11」を押して、「Microsoft Visual Basic for Applications(VBA)」エディターを開きましょう。
  3. VBA エディターで、「挿入」>「標準モジュール」をクリックしてください。
  4. 次の VBA コードを空のモジュールウィンドウにコピー&ペーストしてください。
    Function WordsToNumber(ByVal Txt As String) As Double
    'Updated by Extendoffice
        Dim x As Object: Set x = CreateObject("Scripting.Dictionary")
        Dim units, tens, specials
        Dim part As String, parts() As String
        Dim total As Double, partial As Double, multiplier As Double
        Dim i As Long, word As String
        
        Txt = LCase(Trim(Txt))
        Txt = Replace(Txt, ",", "")
        Txt = Replace(Txt, "-", " ")
        Txt = Replace(Txt, " and ", " ")
        Txt = Replace(Txt, "  ", " ")
        
        ' Setup basic number words
        x.Add "zero", 0: x.Add "one", 1: x.Add "two", 2: x.Add "three", 3
        x.Add "four", 4: x.Add "five", 5: x.Add "six", 6: x.Add "seven", 7
        x.Add "eight", 8: x.Add "nine", 9: x.Add "ten", 10: x.Add "eleven", 11
        x.Add "twelve", 12: x.Add "thirteen", 13: x.Add "fourteen", 14
        x.Add "fifteen", 15: x.Add "sixteen", 16: x.Add "seventeen", 17
        x.Add "eighteen", 18: x.Add "nineteen", 19: x.Add "twenty", 20
        x.Add "thirty", 30: x.Add "forty", 40: x.Add "fifty", 50
        x.Add "sixty", 60: x.Add "seventy", 70: x.Add "eighty", 80
        x.Add "ninety", 90: x.Add "hundred", 100: x.Add "thousand", 1000
        x.Add "million", 1000000: x.Add "billion", 1000000000
        
        Dim dollarPart As String, centPart As String
        Dim dollarValue As Double, centValue As Double
        
        ' Split into dollars and cents
        If InStr(Txt, "dollar") > 0 Then
            dollarPart = Trim(Split(Txt, "dollar")(0))
        End If
        If InStr(Txt, "cent") > 0 Then
            centPart = Trim(Split(Txt, "cent")(0))
            If InStr(centPart, "dollar") > 0 Then
                centPart = Trim(Split(centPart, "dollar")(1))
            End If
        End If
        
        dollarValue = ParseWordsToNumber(dollarPart, x)
        centValue = ParseWordsToNumber(centPart, x)
        
        WordsToNumber = dollarValue + centValue / 100
    End Function
    
    Private Function ParseWordsToNumber(ByVal Txt As String, x As Object) As Double
        Dim parts() As String: parts = Split(Txt, " ")
        Dim total As Double, current As Double
        Dim i As Long, val As Double
        
        For i = 0 To UBound(parts)
            If x.exists(parts(i)) Then
                val = x(parts(i))
                Select Case val
                    Case 100
                        If current = 0 Then current = 1
                        current = current * val
                    Case Is >= 1000
                        If current = 0 Then current = 1
                        total = total + current * val
                        current = 0
                    Case Else
                        current = current + val
                End Select
            End If
        Next i
        
        total = total + current
        ParseWordsToNumber = total
    End Function

手順2:シートで関数を適用

  1. 「Alt」+「Q」を押して、Excel に戻りましょう。
  2. 任意の空セルに次の数式を入力し、「Enter」キーを押してください。「フィルハンドル」を下にドラッグして、残りの結果を簡単に取得できます。
    =WordsToNumber(A2)
    単語を数値に変換する方法を示すスクリーンショット

結論

単語と数値の相互変換は Excel の標準機能ではありませんが、このガイドではニーズに応じて複数の実用的な解決策をご紹介しました。

  • Microsoft 365 ユーザーは、特に「主要単位+補助単位」構造を持つ通貨について、TRANSLATE などの最新の組み込み関数を活用し、数式で通貨金額を英単語に変換できます。
  • 単語への変換および通貨単語から数値への逆変換の両方において、VBA ユーザー定義関数はより高い柔軟性を実現します。ただし、マクロに起因するセキュリティ上の懸念があるため、コーディングに慣れたユーザー向けです。
  • Kutools for Excel は、数式やコーディングが不要で、誰でも簡単に使える高機能な多言語対応ツールを提供し、数十の通貨と言語をサポートします。
  • 単語を数値に戻す必要がある場合、VBA ソリューションがこのギャップを効果的に埋めますが、正確な結果を得るには(たとえばカンマの削除など)後処理が必要になることがあります。

財務書類の作成、小切手印刷の自動化、データ表示の向上など、目的に応じて最適な方法を選べば、プロフェッショナルで正確な出力を実現できます。


最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得