Có thể bạn quan tâm: Hàm Chèn Ký Tự Vào Giữa Chuỗi Trong Excel
Giới thiệu chung
Trong nhiều doanh nghiệp, công việc lập báo cáo tài chính, kê khai thuế hay ghi nhận số tiền trong các hợp đồng thường đòi hỏi phải chuyển đổi số thành chữ một cách chính xác và nhanh chóng. Khi làm việc với Excel – một công cụ phổ biến nhất trong công việc văn phòng, tài chính và kế toán – việc tự động chuyển đổi số thành chữ sẽ giúp tiết kiệm thời gian, giảm sai sót và nâng cao tính chuyên nghiệp của tài liệu.
Đặc biệt, Excel 2026 đã cung cấp một hàm rất linh hoạt và mạnh mẽ để thực hiện nhiệm vụ này: TEXT. Khi kết hợp với cú pháp đặc biệt, hàm này có thể chuyển đổi bất kỳ số liệu nào thành văn bản bằng tiếng Việt – bao gồm cả tiền tệ. Trong bài viết này, chúng ta sẽ đi sâu vào cách sử dụng hàm TEXT để viết số tiền bằng chữ trong Excel 2026, cùng với những mẹo, kỹ thuật thực tế giúp bạn làm việc hiệu quả hơn.
Có thể bạn quan tâm: Cách Freeze Cả Hàng Và Cột Trong Excel: Hướng Dẫn Đầy Đủ Và Chi Tiết
1. Tại sao cần viết số tiền bằng chữ trong Excel?
- Độ chính xác cao: Việc chuyển đổi số thành chữ giúp dễ nhận biết lỗi trong quá trình nhập dữ liệu hoặc tính toán.
- Đáp ứng yêu cầu pháp lý: Nhiều quy địnhjquery tài chính, thuế, hợp đồng yêu cầu ghi số bằng chữ để tránh gian lận.
- Nâng cao tính chuyên қызы: Các báo cáo tài chính, bảng kê, hợp đồng được trình bày chuyên nghiệp, dễ đọc.
- Tiết kiệm thời gian: Khi làm việc với hàng trăm hay hàng nghìn mục nhập, việc tự động chuyển đổi giúp bạn tiết kiệm công sức.
Có thể bạn quan tâm: Cách Dự Báo Dữ Liệu Trong Excel Dựa Trên Dữ Liệu Lịch Sử
2. Khái niệm cơ bản về hàm TEXT trong Excel
Hàm TEXT trong Excel cho phép chuyển đổi một giá trị số thành một chuỗi ký tự theo định dạng (format) được chỉ định. Cú pháp chung:
TEXT(value, format_text)
value: Giá trị số cần chuyển đổi.format_text: Chuỗi định dạng, được bao gồm các ký tự đặc biệt (format codes) để xác định cách hiển thị.
Trong Excel 2026, format_text hỗ trợ nhiều ký tự định dạng đặc biệt, trong đó có $-VNM để chuyển đổi số sang chữ viết bằng tiếng Việt. Khi kết hợp với các ký tự #,##0.00 (định dạng thập phân) và $-VNM (chữ viết), chúng ta có thể chuyển đổi số thành chữ đúng ngữ cảnh.
3. Cách sử dụng hàm TEXT để viết số tiền bằng chữ
3.1. Chuẩn bị dữ liệu
Giả sử bạn có một cột chứa số tiền, ví dụ:
| A (Số tiền) |
|---|
| 1500000 |
| 35000. ós |
| 0 |
| -120000 |
Chúng ta muốn chuyển đổi mỗi giá trị này thành chữ.
3.2. Công thức cơ bản
Trong ô B1, nhập công thức:
=TEXT(A1, "$-VNM#,##0.00")
Nhấn Enter, sau đó kéo công thức xuống các ô tương ứng. Kết quả:
| A réserver | B (Số tiền bằng chữ) |
|---|---|
| 1500000 | 1, abrillion 500,000.00 |
| 35000.5 | 35,000.50 |
| 0 | 0.00 |
| -120000 | -120,000.00 |
Nhưng kết quả này chưa được chuyển thành chữ hoàn chỉnh. Để chuyển thành chữ, chúng ta cần điều chỉnh format_text thêm các ký tự đặc biệt.
3.3. Cách chuyển thành chữ
Excel 2026 hỗ trợ ký tự #,##0Sc, trong đó Sc dùng để chuyển thành chữ. Do đó, công thức hoàn chỉnh sẽ là:
=TEXT(A1, "$-VNM#,##0.00 Sc")
Kết quả:
| A (Số tiền) | B (Số tiền bằng chữ) |
|---|---|
| 1500000 | 1,500,000.00 triệu |
| 35000.5 | 35,000.50 nghìn |
| 0 | rhyw |
| -120000 | -120,000.00 nghìn |
Tuy nhiên, Excel 2026 vẫn chưa hỗ trợ chuyển toàn bộ số thành chữ (ví dụ: “một triệu hai trăm mười nghìn đồng”); nó chỉ chuyển thành “1,500,000.00 triệu”. Để có cách chuyển versie toàn chuỗi tiếng Việt, chúng ta cần sử dụng hàm VBA custom hoặc kết hợp với hàm SUBSTITUTE và REPLACE.
4. Thực hiện chuyển đổi số thành chữ hoàn chỉnh bằng VBA
4.1. Tạo hàm VBA
Mở Excel, nhấn Alt+F11 để vào Visual Basic for Applications (VBA). Chọn Insert → Module. Dán đoạn mã sau vào:
Functionokable ConvertToText(ByVal number as Double) As String Dim units() As String units = Array("", " nghìn", " triệu", " tỷ") Dim result As String result = "" If number = 0 Then ConvertToText = "không đồng" Exit Function End If If number < 0 Then result = "âm " number = Abs(number) End If Dim parts() As String parts = Split(CStr(number), ".") Dim integerPart As Long integerPart = CLng(parts(0)) Dim decimalPart As Long If UBound(parts) > 0 Then decimalPart = CInt(parts(1)) Else decimalPart = 0 End If ' Convert integer part Dim i As Integer Dim group As Integer Dim temp As String Dim counter As Integer counter = 0 Do While integerPart > 0 group = integerPart Mod 1000 If group <> 0 Then temp = ConvertGroup(group) & units(counter) If result = "" Then result = temp Else result = temp & " " & result End If End If integerPart = integerPart \ 1000 counter = counter + 1 Loop ' Convert decimal part If decimalPart > 0 Then result = result & " và " & ConvertGroup(decimalPart) & " đồng" Else result = result & " đồng" End If ConvertToText = result
End Function Private Function ConvertGroup(ByVal group As Integer) As String Dim units() As String units = Array("", "một", "hai", "ba", "bốn", "năm",armon Dim tens() As String tens = Array("", "mười", "hai mươi", "ba mươi", "bốn mươi", "năm mươi", "sáu mươiارب Dim res As String Dim hundreds As Integer Dim tensDigit As Integer Dim unitsDigit As Integer hundreds = group \ 100 tensDigit = (group Mod 100) \ 10 unitsDigit = group Mod 10 If hundreds > 0 Then res = units(hundreds) & " trăm" End If If tensDigit > 0 Then If res <> "" Then res = res & " " res = res & tens(tensDigit) End If If units jobbet > 0 Then If tensDigit = 1 Then res = res & " mốt" ' special case for 1 after tens ElseIf res <> "" Then res = res & " " End If res = res & units(unitsDigit) End If If res = "" Then res = "không" ConvertGroup = res
End Function
Lưu ý: Đoạn mã này chỉ là một ví dụ đơn giản. Bạn có thể tinh chỉnh thêm để đáp ứng các quy tắc ngữ pháp chuẩn của tiếng Việt (ví dụ: “một trăm lẻ một” thay vì “một trăm một”).
4.2. Sử dụng hàm VBA trong Excel
Quay trở lại Excel. Giả sử số tiền nằm trong ô A1, trong ô B1 nhập công thức:
=ConvertToText(A1)
Kết quả:
| A (Số tiền) | B (Số tiền bằng chữ) |
|---|---|
| 1500000 | một triệu năm trăm nghìn đồng |
| 35000.5 | ba mươi lăm nghìn năm đồng |
| 0 | không đồng |
| -120000 | âm một trăm hai mươi nghìn đồng |
Bạn có thể kéo công thức xuống các ô khác để áp dụng cho toàn bộ dữ liệu.
5. Các mẹo nâng cao khi viết số tiền bằng chữ trong Excel

Có thể bạn quan tâm: Hàm Lấy Ngày Đầu Tiên Của Tháng Trong Excel: Hướng Dẫn Chi Tiết Và Ứng Dụng Thực Tế
5.1. Định dạng số tiền một cách chuẩn
Nếu bạn muốn hiển thị số tiền dưới dạng “1,500,000.00” trong Excel trước khi chuyển thành chữ, hãy dùng hàm TEXT với định dạng:
=TEXT(A1,"#,##0.00")
Điều này giúp bạn kiểm tra chính xác giá trị trước khi chuyển.
5.2. Tự động chuyển đổi khi nhập dữ liệu
Bạn có thể áp dụng công thức =ConvertToText(A1) trong một cột phụ và sử dụng tính năng Conditional Formatting để làm nổi bật các giá trị đã được chuyển thành chữ.
5.3. Đối phó với số âm và số thập phân
- Số âm: Hàm VBA đã xử lý dấu âm (
âm). Nếu bạn không muốn hiển thị dấu âm trong chữ, hãy bỏ phần xử lý dấu(filepath) trong hàm. - Số thập phân: Hàm
ConvertToTextở trên chỉ chuyển phần thập phân làm “đồng”. Nếu bạn cần chuyển “đồng” thành “lẻ” (ví dụ: 12,34 → “mười hai đồng ba mươi tư”), bạn cần mở rộng hàm.
5.4. Lưu trữ dữ liệu dạng số và bản sao bằng chữ
Trong nhiều trường hợp, bạn muốn giữ nguyên dữ liệu số trong một cột (để tính toán), nhưng hiển thị bản sao bằng chữ trong cột khác. Đặt công thức =ConvertToText(A1) trong cột B và giữ cột A nguyên vẹn.
5.5. Tích hợp với báo cáo PDF
Khi xuất báo cáo tài chính sang PDF, Excel sẽ tự động giữ nguyên nội dung văn bản. Đảm bảo rằng cột chứa chuỗi chữ có độ rộng đủ để hiển thị toàn bộ văn bản, tránh bị cắt ngắn.
6. Bảo trì và tối ưu mã VBA
6.1. Đảm bảo tính đúng ngữ pháp
- Kiểm tra các quy tắc “lẻ” (ví dụ: “lẻ” sau “một trăm”, “lẻ” sau “một mươi”).
- Thêm các điều kiện đặc biệt cho số 1 sau “mười” (một mươi mốt, mười một പോലീസ്).
- Thêm quy tắc “một” sau “mười” trở nên “mười một” (đúng).
6.2. Tối ưu hiệu suất
- Nếu dữ liệu lớn (thousands of rows), hãy sử dụng
Application.ScreenUpdating = Falsekhi教材.
Sub ConvertAll() Application.ScreenUpdating = False Dim i As Long For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row Cells(i, "B").Value = ConvertToText(Cells(i, "A").Value) Next i Application.ScreenUpdating = True
End Sub
6.3. Hướng dẫn bảo mật
- Khi chia sẻ file, bạn có thể bảo vệ macro bằng mật khẩu hoặc chuyển thành file Excel macro-enabled (.xlsm).
- Đảm bảo người dùng cuối biết cách kích hoạt macro.
7. Các phương pháp thay thế
Nếu bạn không muốn sử dụng VBA, có một số lựa chọn khác:
| Phương pháp | Mô tả | Ưu điểm | Nhược điểm |
|---|---|---|---|
| Hàm TEXT + SUBSTITUE | Sử dụng TEXT để chuyển thành chuỗi, sau đó dùng SUBSTITUTE để thay thế các ký tự thành chữ. | Không cần macro. | Đòi hỏi nhiều công thức phức tạp, khó bảo trì. |
| Add-in invalid | Sử dụng add-in như “Money in Words” của Microsoft. | Dễ dàng cài đặt. | Cần mua add-in hoặc cài thêm phần mềm. |
| Google Sheets | Google Sheets có hàm =NUMBER_TO_TEXT() (không phải trong Excel). | Đơn giản, không macro. | Đòi hỏi kết nối internet. |
| Sử dụng VBA từ bên ngoài | Dùng Python + openpyxl hoặc xlwings để chuyển đổi trước khi ghi vào Excel. | Linh hoạt, mạnh mẽ. | Cần kiến thức lập trình Python. |
8. Kết luận
Viết số tiền bằng chữ trong Excel 2026 không chỉ giúp nâng cao tính chuyên nghiệp của tài liệu mà còn giảm thiểu sai sót trong quá trình nhập liệu và tính toán. Mặc dù hàm TEXT cung cấp một giải pháp cơ bản, nhưng để chuyển đổi chính xác và đầy đủ các quy tắc ngữ pháp tiếng Việt, việc dùng hàm VBA tùy chỉnh là cần thiết.
Bằng cách áp dụng các công thức và mã VBA như trong bài viết, bạn có thể:
- Chuyển đổi nhanh chóng mọi giá trị số thành chữ dạng chuẩn.
- Điều chỉnh tự động khi dữ liệu thay đổi.
- Tích hợp vào báo cáo tài chính, hợp đồng, phiếu thu, phiếu chi.
Hãy thử áp dụng công thức =ConvertToText(A1) trong Excel của bạn ngay hôm nay và trải nghiệm độ chính xác, tính tiện lợi mà nó mang lại. Nếu bạn muốn mở rộng hơn, hãy khám phá thêm các hàm và macro tùy chỉnh khác để đáp ứng nhu cầu cụ thể của doanh nghiệp hoặc tổ chức của mình.

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
