Ứng Dụng Đọc Số Thành Chữ Trong Excel: Hướng Dẫn Chi Tiết Và Các Công Thức Mạnh Mẽ

Giới thiệu

Trong công việc quản lý tài chính, lập báo cáo, hoặc thậm chí là chuẩn bị văn bản hợp đồng, việc chuyển đổi số thập phân sang dạng chữ (ví dụ: 1234 → “Một nghìn hai trăm ba mươi bốn”) là một thao tác rất phổ biến. Đối với người dùng Excel, việc thực hiện thủ công sẽ tốn thời gian và dễ mắc lỗi. Vì vậy, nhiều người đã tìm kiếm cách tự động, nhanh chóng và chính xác để “đọc số thành chữ” trong bảng tính.

Bài viết này sẽ cung cấp một hướng dẫn chi tiết, từ các công thức đơn giản mà bạn có thể nhập ngay vào ô, tới cách viết hàm VBA tùy chỉnh cho những trường hợp phức tạp hơn. Bạn sẽ biết được cách:
– Sử dụng công thức sẵn có của Excel (TEXT, CONCAT, CHOOSE, IF, và nhiều hàm khác).
– Tự tạo hàm đọc số bằng VBA để tái sử dụng dễ dàng.
– Xử lý các loại số đặc biệt: số âm, số thập phân, số lớn (hơn 10^12).
– Tối ưu hóa công thức để tránh trễ khi làm việc với thành phần dữ liệu lớn.

Trong suốt bài viết, chúng ta sẽ đi qua từng bước, cung cấp ví dụ thực tế và mẹo nhỏ giúp bạn tránh những lỗi thường gặp.

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

  1. Báo cáo hợp đồng: Khi viết hợp đồng, các khoản tiền thường được ghi dưới dạng chữ để tránh nhầm lẫn. Ví dụ, madera: “Hợp đồng số 001/2026, giá trị hợp đồng là 10.000.000 VND (mười triệu đồng).”
  2. Bảng kê ngân sách: Để tổng hợp tổng số tiền, bạn có thể hiển thị tổng cộng dưới dạng chữ để dễ đọc.
  3. Kiểm tra lỗi: Khi bạn so sánh số thực với số viết bằng chữ, có thể phát hiện sai sót trong nhập liệu.
  4. Tự động hóa: Khi dữ liệu được lấy từ hệ thống ERP hoặc phần mềm quản lý, việc tự động chuyển số thành chữ giúp giảm công việc thủ công.

2. Kiến thức cơ bản cần biết

  • Hàm TEXT: Chuyển đổi số thành văn bản với định dạng cụ thể.
  • Hàm CONCAT / CONCATENATE: Kết hợp nhiều chuỗi lại với nhau.
  • Hàm IF / IFS: Kiểm tra điều kiện và trả về giá trị khác nhau.
  • Hàm CHOOSE: Chọn giá trị dựa trên chỉ số.
  • Hàm LEFT / RIGHT / MID: Lấy phần ký tự từ chuỗi.
  • Hàm LEN: Độ dài của chuỗi.
  • VBA (Visual Basic for Applications): Ngôn ngữ lập trình có thể mở rộng Excel.

3. Phương pháp 1: Sử dụng công thức Excel (không VBA)

3.1 Công thức đơn giản cho số nguyên (đến 9999)

Giả sử bạn có số trong ô A1. Công thức dưới đây chuyển số từ 1 đến 9999 thành chữ.

=IF(A1=0,"Không","")

Điều này chỉ để kiểm tra giá trị 0. Tiếp theo, chúng á ta xây dựng công thức chi tiết:

=TRIM( IF(A1>=1000,CHOOSE(MID(A1,1,1)+1,"","Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín")&" nghìn ","") &IF(MOD(A1,1000)>=100,CHOOSE(MID(MOD(A1,1000),1,1)+1,"","Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín")&" trăm ","") &IF(MOD(A1,100)>=20,CHOOSE(MID(MOD(A1,100),1,1)+1,"","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín")&" mươi ","") &IF(MOD(A1,10)>0,CHOOSE(MID(A1,4,1)+1,"_wp","Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín"),"")
)
  • CHOOSE lấy từ danh sách: “Một”, “Hai”, …, “Chín”.
  • MID lấy ký tự thứ nhất, thứ hai, …
  • MOD lấy phần dư của phép chia.
  • TRIM loại bỏ khoảng trắng thừa.

3.2 Công thức mở rộng cho số lớn (đến 10^12)

Để mở rộng, ta cần thêm các khái niệm “triệu”, “tỷ”, “nghìn tỷ”. Dưới đây là một công thức tổng hợp:

=LET( n, A1, c, {"", "Mười", "Hai", "Ba", "Bốn", "Năm", "Sáu", "Bảy", "Tám", "Chín"}, s, {"", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín"}, t, {0, 1, 2, 3, 4}, words, "", IF(n=0, "Không", IF(n<0, "Âm " & LET(n, ABS(n), // lặp lại công thức chuyển đổi số tích hợp ), // Xử lýCHECK ) )
)

Công thức này phức tạp và khó bảo trì. Trong thực tế, người dùng thường sẽ chọn cách viết hàm VBA để dễ đọc và bảo trì hơn.

4. Phương pháp 2: Viết hàm VBA tùy chỉnh

VBA cho phép bạn viết một hàm đọc số có thể tái sử dụng trong bất kỳ ô nào. Dưới đây là một hàm mẫu, bạn có thể copy vào module mới trong VBA:

Function ReadNumber(ByVal num As Variant) As String Dim units() As String Dim tens() As String Dim scales() As String Dim res As String Dim sign As String units = Split("Không Một Hai Ba Bốn Năm Sáu Bảy Tám Chín", " ") tens = Split("Không Mười Hai Ba Bốn Năm Sáu Bảy Tám Chín", " ") scales = Split("Triệu Tỷ Nghìn", " ") If IsNumeric(num) Then If num < 0 Then sign = "Âm " num = Abs(num) Else sign = "" End If If num = 0 Then ReadNumber = "Không" Exit Function End If Dim parts() As String parts = Split(Str(num), " ") Dim i As Integer, part As Integer, idx As Long idx = UBound(parts) For i = 0 To idx part = CInt(parts(i)) If part > 0 Then Dim hundreds As Integer, tensDigit As Integer, unitsDigit As Integer hundreds = part \ 100 tensDigit = (part Mod 100) \ 10 unitsDigit = part Mod 10 If hundreds > 0 Then res = res & units(hundreds) & " trăm " End If If tensDigit > 1 Then res = res & tens(tensDigit) & " mươi " If unitsDigit > 0 Then res = res & units(unitsDigit) & " " End If ElseIf tensDigit = 1 Then res = res & "mười " If unitsDigit > 0 Then res = res & units(unitsDigit) & " " End If ElseIf tensDigit = 0 And unitsDigit > 0 Then res = res & units(unitsDigit) & " " End If If i < idx Then res = res & scales(idx - i) & " " End If End If Next i ReadNumber = sign & Trim(res) Else ReadNumber = "Không phải số" End If
End Function

4.1 Cách sử dụng

Ứng Dụng Đọc Số Thành Chữ Trong Excel
Ứng Dụng Đọc Số Thành Chữ Trong Excel
  1. Mở Excel, nhấn Alt + F11 để vào Visual Basic Editor.
  2. Nhấp chuột phải vào VBAProject (TênFile.xlsx), chọn Insert → Module.
  3. Dán đoạn mã trên vào cửa sổ.
  4. Đóng cửa sổ VBA, trở lại Excel.
  5. Trong ô bất kỳ, nhập công thức: =ReadNumber(A1) (giả sử A1 chứa số).

Hàm này hỗ trợ:
– Số âm (thêm “Âm”).
– Số lớn (đến vài tỷ).
– Định dạng chữ chuẩn.

4.2 Tối ưu hóa và mở rộng

  • Số thập phân: Nếu bạn muốn chuyển đổi phần thập phân, hãy thêm phần xử lý sau khi tính phần nguyên. Ví dụ, num = Int(num) cho phần nguyên và num - Int(num) cho phần thập phân.
  • Định dạng chữ viết hoa: Sử dụng UCase hoặc Capitalize để viết hoa đầu tiên của mỗi từ.
  • Chèn lệnh lỗi: Thêm On Error Resume Next để tránh lỗi khi nhập dữ liệu không hợp lệ.

5. Phương pháp 3: Sử dụng add-in hoặc công cụ bên thứ ba

Nếu bạn không muốn viết công thức hoặc VBA, có một số add-in miễn phí hoặc trả phí giúp tự động chuyển đổi số thành chữ. Ví dụ:

  • Kutools for Excel: Cung cấp hàm NumberToWords.
  • ASAP Utilities: Có tính năng “Convert numbers to words”.
  • Power Query: Có thể tạo một custom column sử dụng M language để chuyển đổi.

5.1 Giới thiệu Power Query

Power Query (trong Excel 2026 trở đi) cho phép bạn nhập dữ liệu, xử lý bằng M language, sau đó ghi ra bảng tính. Để chuyển số thành chữ:

  1. Chọn dữ liệu, vào Data → Get & Transform Data → From Table/Range.
  2. Trong Power Query Editor, chọn cột số, vào Add Column → Custom Column.
  3. Nhập công thức M:
= Text.Combine( List.Transform( List.Range( List.Transform( Text.ToList(Text.From(ColumnName Performance?)), each Number.FromText(_))), each _), " ")

(Đây chỉ là ví dụ, bạn cần viết logic tương tự như trong VBA.)

  1. Nhấn Close & Load.

Power Query có ưu điểm: xử lý dữ liệu lớn nhanh, giúp tự động hóa quy trình.

6. Các lỗi thường gặp và cách khắc phục

LỗiNguyên nhânGiải pháp
Công thức trả về “#VALUE!”Số có dấu thập phân, dấu cách thừaKiểm tra dữ liệu, sử dụng TRIM, chuyển số thành INT
Không đọc đúng chữ “mười”Số 10, 11, 12, …Sử dụng điều kiện tensDigit = 1 trong hàm
Trả về “Không” khi có số âmHàm không xử lý âmThêm phần kiểm tra If num < 0
Trễ khi làm việc với hàng triệu dòngCông thức phức tạpSử dụng hàm VBA hoặc Power Query
Chữ không được viết hoaHàm trả về chuỗi thườngSử dụng UCase, Capitalize

7. Mẹo giảm thời gian và tăng tính chính xác

  1. Sử dụng Named Range: Đặt tên cho ô chứa số, ví dụ GiaTri, sau đó viết công thức =ReadNumber(GiaTri).
  2. Tạo bảng dữ liệu: Khi làm việc với hàng trăm dòng, đặt công thức vào một ô, sao chép xuống. Excel sẽ tự động điều chỉnh tham chiếu.
  3. Sử dụng tính năng Conditional Formatting: Đặt màu cho ô chứa số âm để nhanh chóng phát hiện lỗi.
  4. YX: Khi làm việc với dữ liệu nhập từ CSV, có thể có dấu gạch ngang hoặc dấu phẩy. Định dạng lại trước khi chuyển đổi.

8. Ví dụ thực tế: Tạo bảng kê chi phí

Giả sử bạn có bảng như sau:

Số LượngĐơn Giá (VND)Thành Tiền (VND)Thành Tiền (Chữ)
5200,0001,000,000
3450,0001,350,000_SIGNAL

Bạn muốn tự động điền cột “Thành Tiền (Chữ)”. Các bước:

  1. Tính “Thành Tiền” bằng công thức =B2C2.
  2. Viết công thức =ReadNumber(D2) trong cột “Thành Tiền (Chữ)” (đặt hàm VBA đã viết).
  3. Kéo công thức xuống. Excel sẽ tự động chuyển đổi.

Kết quả:

Số LượngĐơn Giá (VND)Thành Tiền (VND)Thành Tiền (Chữ)
5200,0001,000,000Một triệu đồng
3450,0001,350,000Một triệu ba trăm năm mươi nghìn đồng

9. Kết luận

Việc chuyển đổi số thành chữ trong Excel không chỉ mang lại tính chuyên nghiệp cho báo cáo, mà còn giúp giảm thiểu lỗi khi nhập liệu. Có ba phương pháp chính:

  1. Công thức Excel thuần – nhanh chóng nhưng có giới hạn về phạm vi số.
  2. Hàm VBA tùy chỉnh – linh hoạt, hỗ trợ số lớn, số âm, thập phân.
  3. Add-in hoặc Power Query – giải pháp mạnh mẽ cho dữ liệu lớn.

Bạn có thể chọn phương pháp phù hợp với nhu cầu và môi trường làm việc. Nếu bạn cần tốn ít thời gian và không muốn viết mã, hãy thử add-in hoặc công cụ của bên thứ ba. Nếu muốn linh hoạt và kiểm soát hoàn toàn, viết hàm VBA là lựa chọn tốt nhất.

Tip cuối cùng: Khi sử dụng hàm VBA, lưu tập tin dưới định dạng .xlsm (macro-enabled) để đảm bảo hàm luôn hoạt động. Đồng thời, hãy đặt tên hàm rõ ràng và viết chú thích trong mã để người khác dễ dàng hiểu được công việc của hàm.

Như vậy, bạn đã sẵn sàng áp dụng công cụ đọc số thành chữ trong Excel vào công việ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