ExcelのBAHTTEXT関数の使い方|エラー対処と実務例

スポンサーリンク

Excelで「金額をタイ語のテキストに変換したい」と思ったことはありませんか。タイの請求書やインボイスでは、金額をタイ語で表記する必要があります。

手入力だとスペルミスのリスクがありますし、そもそもタイ語が読めないと正しいか判断できませんよね。BAHTTEXT関数を使えば、数値を入れるだけで自動的にタイ語の金額テキストに変換できます。この記事では基本の書き方からエラー対処、実務での活用例までまとめて紹介します。

この記事は次のような人におすすめ

  • 数値をタイ語の金額テキストに変換したい
  • BAHTTEXT関数で#VALUE!エラーが出て困っている
  • タイ語の請求書テンプレートをExcelで作りたい

BAHTTEXT関数とは

読み方と何ができるか

BAHTTEXT(バーツテキスト)関数は、数値をタイ語の通貨テキストに変換する関数です。名前は「Baht(バーツ=タイの通貨単位)」と「Text(文字列)」を組み合わせた造語です。

たとえば「50」を渡すと「ห้าสิบบาทถ้วน」というタイ語の文字列が返ってきます。戻り値はテキスト型なので、そのまま数値計算に使うことはできません。

Excel 2000以降のすべてのバージョンに対応しています。Microsoft 365やMac版でも問題なく動作しますよ。

どんな場面で使うか

タイのタックスインボイス(税務請求書)では、歳入法により金額のタイ語テキスト表記が義務づけられています。改ざん防止と法的有効性を担保するためです。

主に次のような場面で活躍します。

  • タイ現地法人への請求書・領収書の作成
  • 貿易実務でのインボイス発行
  • タイ語の見積書テンプレートの自動化

日本語版のExcelでもタイ語ロケールなしで動作するので、日本国内の環境でもそのまま使えますよ。

BAHTTEXT関数の構文と引数

書き方の基本

=BAHTTEXT(数値)

引数は1つだけ。とてもシンプルな関数です。

引数:数値の指定方法

引数必須/任意内容
数値(number)必須タイ語に変換したい数値。セル参照や数式もOK

数値の指定方法は3パターンあります。

=BAHTTEXT(1500)      ← 直接数値を入力
=BAHTTEXT(A1)        ← セル参照で指定
=BAHTTEXT(A1*1.07)   ← 数式の結果を渡す

セル参照で指定するのが一般的です。請求書テンプレートなど、金額が変わるケースではセル参照を使ってみてください。

引数に文字列を渡すと#VALUE!エラー、負の数を渡すと#NUM!エラーになります。エラーの対処法は後のセクションで詳しく解説します。

入力値と出力結果の対応表

整数の場合

整数を渡すと、末尾に「ถ้วน(ちょうど)」が付きます。端数がないことを示すタイ語の表現です。

入力値数式出力結果
50=BAHTTEXT(50)ห้าสิบบาทถ้วน
1999=BAHTTEXT(1999)หนึ่งพันเก้าร้อยเก้าสิบเก้าบาทถ้วน

「บาท」は通貨単位「バーツ」を意味します。

小数(サタン)を含む場合の出力パターン

小数を渡すと、小数部分が「สตางค์(サタン)」として変換されます。1バーツ=100サタンの関係です。小数第2位までが自動変換の対象になります。

入力値数式出力結果
15.75=BAHTTEXT(15.75)สิบห้าบาทเจ็ดสิบห้าสตางค์
15.756=BAHTTEXT(15.756)สิบห้าบาทเจ็ดสิบหกสตางค์

小数第3位以降は四捨五入されます。上の例では15.756が15.76に丸められていますね。意図しない丸めを避けたい場合は、事前にROUND関数で桁を揃えておくと安心です。

=BAHTTEXT(ROUND(A1,2))

0・負の数・大きな数の挙動

入力値数式出力結果
0=BAHTTEXT(0)ศูนย์บาทถ้วน
-100=BAHTTEXT(-100)#NUM!エラー
999999=BAHTTEXT(999999)เก้าแสนเก้าหมื่นเก้าพันเก้าร้อยเก้าสิบเก้าบาทถ้วน

0はタイ語で「ศูนย์(スーン)」と正しく変換されます。一方、負の数を渡すと#NUM!エラーになるので注意が必要です。負の数を扱いたい場合はABS関数(絶対値を返す関数)で正の数にしてから渡してください。

=IF(A1<0,"ลบ"&BAHTTEXT(ABS(A1)),BAHTTEXT(A1))

この数式は、負の数のときに先頭に「ลบ(マイナス)」を付けて変換します。

#VALUE!エラーの原因と対処法

エラーが出る典型パターン

BAHTTEXT関数で発生しやすいエラーは主に3つです。

エラー原因対処法
#VALUE!引数が数値でない(文字列が入っている)VALUE関数で数値に変換する
#NUM!負の数を渡したABS関数で絶対値にする
#NAME?関数名のスペルミスBAHTTEXTのつづりを確認

最も多いのは#VALUE!エラーです。セルの値が「1,500」のようにカンマ区切りの文字列になっていると発生します。見た目は数値でも、実際には文字列というケースは意外と多いですよ。

そのような場合は、VALUE関数(文字列を数値に変換する関数)を組み合わせます。

=BAHTTEXT(VALUE(A1))

VALUE関数がA1の文字列を数値に変換してからBAHTTEXT関数に渡すので、#VALUE!エラーを防げます。

エラー値の種類について詳しく知りたい方は、Excelのエラー値一覧の記事も参考にしてみてください。

IFERRORと組み合わせてエラーを非表示にする

IFERROR関数(エラーの場合に代替値を返す関数)と組み合わせると、エラー表示を防げます。

=IFERROR(BAHTTEXT(A1),"数値を入力してください")

この数式はA1が空欄や文字列でも、エラーの代わりにメッセージを表示します。請求書テンプレートでは、まだ金額を入力していない行にエラーが並ぶのを防げるので便利です。

タイ語請求書での実務活用例

金額欄にBAHTTEXTを組み込む手順

タイ向けの請求書テンプレートに組み込む流れを紹介します。

  1. 金額セル(例: E10)に合計金額の数式を入力する
  2. タイ語テキスト用のセル(例: E11)に次の数式を入力する
=BAHTTEXT(E10)
  1. E11セルのフォントをタイ語対応フォント(Tahoma等)に設定する

タイ語が文字化けする場合は、フォントの設定を確認してみてください。TahomaやCordia Newなど、タイ語に対応したフォントを選ぶと正しく表示されます。

IFERRORで入力前のエラー表示を防ぐ

テンプレートとして配布する場合、金額が未入力の状態でもエラーを出さない工夫が大切です。

=IFERROR(BAHTTEXT(E10),"")

第2引数を空文字にすれば、未入力時はセルが空白のまま表示されます。メッセージを出したい場合は「金額を入力してください」などに変えてみてください。

よくある疑問Q&A

Googleスプレッドシートでも使える?

BAHTTEXT関数はExcel専用の関数です。Googleスプレッドシートには用意されていません。スプレッドシートでタイ語変換を行いたい場合は、Apps Scriptでカスタム関数を作成する方法が一般的です。

DOLLAR関数・TEXT関数との違いは?

それぞれ目的が異なる関数です。下の表で比較してみましょう。

関数目的出力例
BAHTTEXT数値をタイ語の金額テキストに変換ห้าสิบบาทถ้วน
DOLLAR関数数値を通貨書式の文字列に変換$50.00
TEXT関数数値を指定した表示形式の文字列に変換50.00

BAHTTEXT関数は「数値→タイ語テキスト」という特殊な変換を行う唯一の関数です。DOLLAR関数やTEXT関数では、タイ語の金額テキストは生成できません。

まとめ

BAHTTEXT関数は、数値をタイ語の通貨テキストに変換する関数です。構文は =BAHTTEXT(数値) で引数は1つだけ。タイ向けの請求書やインボイスで金額のタイ語表記が必要な場面で役立ちます。

ポイントを整理しておきましょう。

  • 整数は末尾に「ถ้วน(ちょうど)」が付く
  • 小数は第2位まで「สตางค์(サタン)」に自動変換される
  • 負の数は#NUM!エラーになるのでABS関数と組み合わせる
  • 文字列を渡すと#VALUE!エラーになるのでIFERROR関数でラップする
  • Googleスプレッドシートでは使えない(Excel専用)

エラーが心配な場合は =IFERROR(BAHTTEXT(A1),"") と書いておけば安心ですよ。タイ語の請求書テンプレートを作るときにぜひ活用してみてください。

タイトルとURLをコピーしました