Excel’s BAHTTEXT Function: What to Use for English Amounts

Illustrated infographic summarizing: Excel Baht To Text and English Version

By Greg Nowak. Updated 1 November 2026.

If you need an invoice or payment form to show an amount in words, Excel’s BAHTTEXT() looks promising—until the result appears in Thai. The function converts numbers into Thai currency wording. There is no language argument that switches it to English.

For English amounts, a custom function is a common approach. The useful choice depends on who prepares the document, where they open the workbook, and how often the wording must update. Here is how to choose a method and make it dependable enough for a shared business process.

What BAHTTEXT does—and where it stops

Put 1234 in cell A2, then enter =BAHTTEXT(A2) in another cell. Excel returns หนึ่งพันสองร้อยสามสิบสี่บาทถ้วน: Thai wording for 1,234 baht. The input can also be a number or a formula, as described in Microsoft’s BAHTTEXT documentation.

Changing the input cell’s currency format to dollars or pounds does not translate the output or change its currency meaning. Use BAHTTEXT when the document actually needs Thai baht wording. Keep the numeric amount in a separate cell for calculations.

Is there an English version of BAHTTEXT?

Excel has no matching built-in English SpellNumber() function. You may see that name in tutorials, but it refers to custom code someone has added.

The TEXT() function solves a different problem. For example, =TEXT(A2,"#,##0.00") produces formatted digits, such as 1,234.00. It does not produce “one thousand two hundred thirty-four.” Microsoft’s TEXT guidance confirms this distinction and points to VBA for spelling numbers in English.

Before commissioning code, check whether the receiving organisation requires words at all. For an occasional document, typing and checking the wording may take less effort than maintaining a custom workbook.

Your situation Practical approach Main check
Thai baht amounts Use =BAHTTEXT(A2). Have someone who reads Thai confirm the document wording.
A few English documents Write the amount manually. Compare it with the final numeric total before sending.
Recurring forms in desktop Excel Use a reviewed VBA number-to-words function. Confirm currency rules and whether the team can run VBA.
A process used mainly in a browser Use a reviewed formula-only solution or generate words in the document system. Check Excel compatibility, maintenance ownership, and how updates happen.
Choose the conversion method around the people using the document and the software they use.

Set up an English custom function in desktop Excel

If your team uses desktop Excel and permits VBA, a custom function can keep the written amount linked to the total. Start with code reviewed for your required currency and wording; a function called SpellNumber is not necessarily suitable just because its name looks familiar.

  1. Open the workbook in desktop Excel. On Windows, press Alt+F11 to open the Visual Basic Editor.
  2. Select the intended workbook in the Project Explorer, choose Insert > Module, and add the reviewed function and its helper functions.
  3. Return to the worksheet. If the function is named SpellNumber and accepts one amount, enter =SpellNumber(A2).
  4. Save through File > Save As as an Excel Macro-Enabled Workbook (*.xlsm).

Microsoft explains the custom-function mechanism; its example teaches the setup rather than supplying an English currency converter. Microsoft’s file-format reference confirms that .xlsm stores VBA code and .xlsx does not.

If you get #NAME?, check that the function name matches and that its code is available. A function stored in a separate workbook requires that workbook to be open and the reference to be correct. Keeping reviewed code with the shared form avoids a dependency on someone’s personal workbook.

Agree on the wording before testing the code

“One hundred dollars and five cents” and “one hundred and 05/100” are different output requirements. Ask the document owner to approve examples covering the currency name, fractional units, use of “and,” and whether wording such as “only” is required. Do not assume a dollar-based example can be reused for every currency by changing one label.

For a two-decimal currency, make rounding explicit. One possible layout is to keep the calculated total in A2, put =ROUND(A2,2) in B2, and use =SpellNumber(B2) for the words. The document’s numeric total should also use B2. Formatting A2 to show two decimals alone does not change its underlying value.

Keep a small test sheet with approved expected wording. Include 0, 1, 0.01, 100.05, 999.99, and 1000, plus a large amount and a rounding boundary such as 999.999. Check blanks, text inputs, and negative amounts separately. Unsupported inputs should produce a clear error or validation message rather than plausible but incorrect wording.

Check the handover, especially for browser users

Excel for the web cannot create, run, or edit VBA macros, although it can open and edit workbooks containing them. A VBA function therefore cannot provide dependable live conversion in a browser workflow.

If recipients only need the finished document, generate and check it in desktop Excel, then send a PDF. If they need to change amounts, choose a method that works in their environment. Formula-only converters need the same review of wording, supported values, and Excel versions as VBA.

Before handing over an agency template or operations workbook, have another team member reopen it on their own machine, change an amount, and produce the final document. Confirm that the code is approved under their macro policy. Add a short instructions sheet naming the input cell, supported currency, required app, and person responsible for changes.

If this small formula has become a recurring source of checking and rework, I can help review the workbook, agree the wording rules, and make the handover clearer. Talk to me about your spreadsheet workflow.

Related on GrN.dk

Need help with this kind of work?

Talk to Greg about your spreadsheet workflow Get in touch with Greg.

Sources

Latest articles

Get missing supporting documents under control with a clearly scoped AI workflow that sorts replies, coordinates reminders and gives the bookkeeper a clear follow-up list.

Know what dmesg and journalctl can tell you after a reboot, how to find previous-boot logs, and how to check that retention covers your investigation window.

Check how your chatbot identifies itself as AI, where requests for human help actually go, and what customers encounter when support is unavailable.

Start with one website change on board.nowa.dk. Write a clear task, answer questions as they arise and review the result before giving an AI agent more work.

Keep AI search visibility, training preferences and assistant access separate. Use a practical policy matrix to check Cloudflare settings and test key public pages.

Let AI draft Black Friday campaigns using approved product data. Check prices and recipients, and secure approval before sending the campaign from Mailchimp.

Make AI meeting notes useful after the call: confirm decisions, agree owners and deadlines, check existing tasks, and verify that work reaches the right tracker.

Before tuning your AI chatbot, check whether your PDFs supply readable text, reliable reading order, usable tables, and passages you can trace to the page.

Bring quote request emails from Outlook into your CRM with AI. Define fields, duplicate checks and sales ownership, then use a pilot to measure whether the solution saves time and helps more enquiries get followed up.

Plan your PHP upgrade around checkout, enquiries and daily operations, with practical checks for compatibility, staging, deployment and rollback before support ends.