Hàm Viết Số Tiền Bằng Chữ Trong Excel 2026: Hướng Dẫn Chi Tiết Và Các Mẹo Tối Ưu

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.

1. Tại sao cần viết số tiền bằng chữ trong Excel?

  1. Độ 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.
  2. Đá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.
  3. 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.
  4. 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.

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éserverB (Số tiền bằng chữ)
15000001, abrillion 500,000.00
35000.535,000.50
00.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ữ)
15000001,500,000.00 triệu
35000.535,000.50 nghìn
0rhyw
-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ữ)
1500000một triệu năm trăm nghìn đồng
35000.5ba mươi lăm nghìn năm đồng
0khô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

Hàm Viết Số Tiền Bằng Chữ Trong Excel 2026
Hàm Viết Số Tiền Bằng Chữ Trong Excel 2026

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 = False khi教材.
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ápMô tảƯu điểmNhược điểm
Hàm TEXT + SUBSTITUESử 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 invalidSử 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 SheetsGoogle 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àiDù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ể:

  1. Chuyển đổi nhanh chóng mọi giá trị số thành chữ dạng chuẩn.
  2. Điều chỉnh tự động khi dữ liệu thay đổi.
  3. 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.

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận