Phần Mềm Đọc Số Thành Chữ Trong Excel 2026: Cách Thực Hiện Và Tối Ưu Hoá

Trong môi trường làm việc doanh nghiệp, báo cáo tài chính, hợp đồng قوانn, hay bất kỳ tài liệu nào cần thể hiện số tiền một cách rõ ràng, việc chuyển đổi số thành chữ là một thao tác quan trọng. Excel 2026, với tính năng mạnh mẽ và tính linh hoạt của VBA, cho phép người dùng thực hiện công việc này một cách nhanh chóng và chính xác. Bài viết dưới đây sẽ hướng dẫn chi tiết từng bước, từ cách sử dụng hàm sẵn có, viết macro, cho tới mẹo tối ưu hoá hiệu suất khi làm việc với dữ liệu lớn.

1. Tại sao cần chuyển số thành chữ trong Excel

  • Độ chính xác: Việc viết số bằng chữ giúp tránh sai sót khi đọc số, đặc biệt trong các giao dịch tài chính.
  • Định dạng tài liệu: Hóa đơn, hợp đồng, phiếu chi thường yêu cầu ghi số bằng chữ.
  • Tự động hoá: Khi dữ liệu thay đổi, công thức tự động cập nhật số thành chữ mà không cần thao tác thủ công.

2. Cách chuyển số thành chữ trong Excel 2026 – Phương pháp 1: Hàm VBA đơn giản

Excel không có hàm sẵn có để chuyển số thành chữ (đến khi Excel 2026 trở đi, có hàm TEXT hỗ trợ định dạng dạng chữ). Tuy nhiên, trong Excel 2026, chúng ta có thể viết một hàm VBA tùy chỉnh. Dưới đây là một ví dụ cơ bản:

Function SoThanhChu(ByVal n As Double) As String Dim d As Long, s As String d = Int(n) If d = 0 Then SoThanhChu = "Không đồng" : Exit Function s = "" Dim m As Long, t As String m = d Dim i As Long Dim arr As Variant arr = Array("", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín") ' Thập phân Dim dec As Long dec = d Mod 10 t = arr(dec) If t <> "" Then s = t & " đồng" ' Chia 1000, 1,000,000, ... i = 3 While m > 0 Dim part As Long part = m Mod 1000 If part > 0 Then Dim partText As String partText = PartToWords(part) ' Hàm xử lý phần 3 chữ số s = partText & " " & Thousands(i) & " " & s End If m = m \ 1000 i = i + 3 Wend SoThanhChu = Trim(s)
End Function Function PartToWords(ByVal num As Long) As String Dim words As String words = "" Dim thousand As Long, hundred As Long, ten As Long, unit As Long thousand = num \ 100 hundred = (num Mod 100) \ 10 unit = num Mod 10 Dim arr As Variant arr = Array("", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín") If thousand > 0 Then words = arr(thousand) & " trăm" End If If hundred > 0 Then words = words & " " & arr(hundred) & " mươi" ElseIf thousand > 0 And unit <> 0 Then words = words & " lẻ" End If If unit > 0 Then words = words & " " & arr(unit) End If PartToWords = Trim(words)
End Function Function Thousands(ByVal pos As Long) As String Dim arr As Variant arr = Array("", "nghìn", "triệu", "tỷ") Thousands = arr(pos \ 3)
End Function

Cách sử dụng
1. Mở VBA Editor (Alt + F11).
2. Chèn một Module mới (Insert > Module).
3. Dán đoạn mã trên vào cửa sổ Module.
4. Trở lại Excel, nhập công thức: =SoThanhChu(A1) (trong đó A1 là ô chứa số).

Lưu ý: Hàm trên chỉ hỗ trợ số nguyên. Nếu cần xử lý phần thập phân, bạn có thể mở rộng logic.

3. Cách chuyển số thành chữ trong Excel 2026 – Phương pháp 2: Sử dụng hàm TEXT kết hợp với CONVERT

Mặc dù Excel 2026 không hỗ trợ hàm CONVERT cho chuyển số thành chữ, nhưng bạn có thể kết hợp các hàm khác để đạt được mục tiêu:

  1. Sử dụng hàm TEXT để định dạng số thành dạng chữ (nếu có add-in).
  2. Dùng Add-in như Number to Word của Microsoft hoặc các add-in miễn phí.

Ví dụ: Cài đặt add-in “Number to Words” (có sẵn trên trang web của Microsoft), sau đó nhập công thức:

=NUMTOWORD(A1)

Add-in này đồng bộ với Excel 2026 và hỗ trợ nhiều ngôn ngữ.

4. Tối ưu hoá hiệu suất khi вирус

Phần Mềm Đọc Số Thành Chữ Excel 2026
Phần Mềm Đọc Số Thành Chữ Excel 2026

Khi làm việc với hàng nghìn dòng dữ liệu, hàm VBA tùy chỉnh có thể làm chậm. Dưới đây là một số mẹo:

  • Disable ScreenUpdating: Trong module, thêm Application.ScreenUpdating = False trước khi chạy lô, và True sau khi hoàn thành.
  • Cache kết quả: Nếu một số xuất hiện nhiều lần, lưu trữ kết quả trong một dictionary.
  • Giảm số lần gọi hàm: Sử dụng hàm SoThanhChu một lần duy nhất và copy kết quả sang ô khác.
Sub ConvertLargeRange() Dim rng As Range, cell As Range Set rng = Range("A2:A10000") Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim cache As Object Set cache = CreateObject("Scripting.Dictionary") For Each cell In rng If Not cache.Exists(cell.Value) Then cache(cell.Value) = SoThanhChu(cell.Value) End If cell.Offset(0, 1).Value = cache(cell.Value) Next cell Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True
End Sub

5. Khắc phục lỗi thường gặp

LỗiNguyên nhânGiải pháp
Hàm trả về chuỗi rỗng.alphaSố bằng 0Thêm kiểm tra If d = 0 Then SoThanhChu = "Không đồng" : Exit Function
Độ dài chuỗi quá dàiDữ liệu lớnKiểm tra cột chứa số, chia nhỏ dữ liệu, dùng hàm TEXT thay vì VBA
Thay đổi ngôn ngữKhông hỗ trợ tiếng ViệtSử dụng add-in inven, hoặc viết hàm xử lý tiếng Việt

6. Mẹo nâng cao: Tùy biến ngôn ngữ

Nếu bạn làm việc với nhiều quốc gia, bạn có thể mở rộng hàm SoThanhChu để hỗ trợ nhiều ngôn ngữ:

Function SoThanhChu(ByVal n As Double, Optional ByVal lang As String = "vi") As String Select Case lang Case "vi" SoThanhChu = SoThanhChuVi(n) Case "en" SoThanhChu = SoThanhChuEn(n) Case Else SoThanhChu = "Unsupported language" End Select
End Function

Trong đó, bạn định nghĩa SoThanhChuVi và SoThanhChuEn tương ứng với tiếng Việt và tiếng Anh.

7. Thực hành thực tế: Tạo báo cáo tài chính

Giả sử bạn có bảng dữ liệu:

Số lượngĐơn giáThành tiền
1050,000500,000
5120,000600,000

Bạn muốn hiển thị Thành tiền bằng chữ. Dưới đây là cách thực hiện:

  1. Cột A: Số lượng. Jaz.
  2. Cột B: Đơn giá.
  3. Cột C: =A2B2 (Thành tiền).
  4. Cột D: =SoThanhChu(C2) (Số tiền bằng chữ).

Kết quả:

Số lượngĐơn giáThành tiềnThành tiền (chữ)
1050,000500,000năm trăm nghìn đồng
5120,000600,000sáu trăm nghìn đồng

Ghi chú: Nếu sử dụng add-in, công thức sẽ thay đổi thành =NUMTOWORD(C2).

8. Đề xuất công cụ hỗ trợ

Công cụMô tảLợi ích
Add-in “Number to Words”Tích hợp hàm chuyển số thành chữDễ sử dụng, hỗ trợ nhiều ngôn ngữ
VBA Custom FunctionTự viết hàm tùy chỉnhLinh hoạt, không phụ thuộc add-in
Google SheetsĐịnh dạng số thành chữ bằng hàm TEXTĐơn giản, không cần cài thêm {}
Python + openpyxlScripting tự độngDùng khi cần xử lý dữ liệu lớn, phức tạp

9. Kết luận

Việc chuyển số thành chữ trong Excel 2026 không symbole là công việc khó khăn. Bằng cách tận dụng VBA, add-in, hoặc các công cụ hỗ trợ, bạn có thể thực hiện công việc này một cách nhanh chóng, chính xác và dễ dàng quản lý. Hãy lựa chọn phương pháp phù hợp với quy mô dữ liệu và nhu cầu công việc của bạn. Khi áp dụng các mẹo tối ưu hoá hiệu suất, bạn sẽ tiết kiệm được thời gian và tránh được những lỗi không đáng có.

Hãy thử ngay các bước trên để tối ưu hoá quy trình làm việc của mình và nâng cao chất lượng tài liệu báo cáo.

⚠️
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