Excel BAHTTEXT Function: Convert Numbers to Thai Text

Part of the free Module 5: Excel Formulas and Functions · Function 6 of 105 · Full Excel course

The Excel BAHTTEXT function converts a number into Thai words and appends the currency suffix “บาท” (Baht). It returns a text string, so the result cannot be used in arithmetic. BAHTTEXT is the only built-in number-to-words function in Excel, and it works only for the Thai language and the Thai Baht currency.

Syntax

=BAHTTEXT(number)

Arguments

ArgumentRequired / OptionalMeaning
numberRequiredThe number to convert. It can be a constant, a cell reference or a formula that returns a number.

How the BAHTTEXT function works

BAHTTEXT reads the numeric value, writes the whole-number part in Thai words and adds “บาท”. If the value has no decimals, the text ends with “บาทถ้วน”, which means “Baht exactly”. If there are decimals, Excel rounds the value to two decimal places and writes the fraction as satang (“สตางค์”), the sub-unit of the Baht. Negative numbers are prefixed with “ลบ” (minus). The output is always text.

Step-by-step example

  1. Type 1234.56 in cell A2.
  2. In cell B2 enter =BAHTTEXT(A2) and press Enter.
  3. Excel returns หนึ่งพันสองร้อยสามสิบสี่บาทห้าสิบหกสตางค์ (one thousand two hundred thirty-four Baht fifty-six satang).
  4. Change A2 to 100. The result becomes หนึ่งร้อยบาทถ้วน (one hundred Baht exactly).
  5. If the cell shows squares instead of Thai letters, apply a font that includes Thai glyphs, such as Tahoma or Leelawadee UI.

Practical use cases

1. Amount in words on a Thai invoice or cheque

=BAHTTEXT(SUM(D5:D20))

Totals the line items and prints the grand total in words, which many Thai accounting documents require.

2. Show the figure and the words together

=TEXT(A2,"#,##0.00")&" ("&BAHTTEXT(A2)&")"

Produces a single label such as 1,234.56 (หนึ่งพันสองร้อยสามสิบสี่บาทห้าสิบหกสตางค์).

3. Convert imported text before spelling it

=BAHTTEXT(VALUE(TRIM(A2)))

Data exported from other systems often arrives as text with stray spaces. VALUE and TRIM turn it back into a number so BAHTTEXT does not return an error.

4. Keep blank rows clean

=IF(A2="","",BAHTTEXT(A2))

Without the IF test, an empty cell is treated as zero and prints “ศูนย์บาทถ้วน” (zero Baht exactly).

Common mistakes and tips

  • #VALUE! error: the argument is text that Excel cannot read as a number, for example “1,234 THB”. Strip the currency code first.
  • Decimals are not ignored: older tutorials claim BAHTTEXT drops the fraction. It does not; it rounds to two decimals and writes them as satang.
  • The result is text: you cannot sum or compare BAHTTEXT outputs. Do the arithmetic first, then convert the total.
  • Font support: the function always works, but the cell needs a Thai-capable font to display correctly.
  • No English equivalent: Excel has no built-in function to spell numbers in English or other languages. Use a VBA SpellNumber routine or a nested TEXT and CHOOSE formula for that.
  • Google Sheets does not include BAHTTEXT; the formula only runs in Excel (desktop, Mac and web).

BAHTTEXT compared with other conversion functions

BAHTTEXT is often confused with TEXT, DOLLAR and FIXED because all four return text. The difference is what they produce. TEXT and DOLLAR keep the digits and only change the formatting, for example turning 1234.5 into 1,234.50 or $1,234.50. FIXED does the same without a currency symbol. BAHTTEXT replaces the digits entirely with Thai words. If you need words in another language, Excel offers nothing built in; the common approaches are a VBA user-defined function such as SpellNumber, a long nested formula that uses TEXT to split the number into hundreds, tens and units and CHOOSE to map each digit to a word, or a third-party add-in. For Thai documents, BAHTTEXT remains the quickest and most reliable option because it handles satang, rounding and negative values without any extra code.

Related functions

  • TEXT: formats a number as text using a custom number format.
  • DOLLAR: converts a number to currency-formatted text.
  • FIXED: rounds a number and returns it as text with a fixed number of decimals.
  • VALUE: converts a numeric text string back to a number.
  • See all lessons in the Excel Formulas course.

Frequently asked questions

Does the BAHTTEXT function convert decimal amounts?

Yes. Excel rounds the number to two decimal places and writes the fraction as satang after the Baht amount.

Can BAHTTEXT spell numbers in English?

No. BAHTTEXT only produces Thai text with the Baht suffix. For English words you need a VBA macro or a custom formula.

Why does BAHTTEXT return #VALUE!?

The argument is not a valid number, usually because the cell contains text such as a currency symbol or a unit. Convert it with VALUE or NUMBERVALUE first.

Need a ready-made template? Browse 7,000+ Excel, Power BI and Google Sheets templates at NextGenTemplates.com.