Cách Hiển Thị Số Tiền Bằng Chữ Trong Excel

Trong công việc kế toán, tài chính và lập báo cáo tài chính, việc chuyển đổi số tiền thành dạng chữ luôn là một yêu cầu phổ biến. Mặc dù Excel không cung cấp sẵn công thức chuyển đổi trực tiếp từ số sang chữ, nhưng nhờ vào một số phương pháp linh hoạt – từ công thức đơn giản, hàm tùy chỉnh VBA cho đến Power Query – bạn hoàn toàn có thể thực hiện điều này một cách nhanh chóng và chính xác. Bài viết dưới đây sẽ cung cấp một hướng dẫn chi tiết, dễ hiểu, bao gồm cả ví dụ thực tế và các mẹo nhỏ giúp bạn tối ưu công việc.

1. Tại sao cần chuyển số tiền sang chữ?

  • Đáp ứng quy định pháp lý: Các văn bản pháp lý, hợp đồng, hóa đơn thường yêu cầu ghi số tiền bằng chữ để tránh nhầm lẫn hoặc gian lận.
  • Tăng tính chuyên nghiệp: Bản báo cáo, hợp đồng có số tiền bằng chữ thường được coi là chính thức và dễ đọc hơn.
  • Tránh lỗi khi nhập: Khi số tiền được nhập bằng chữ, người đọc sẽ thiên về việc kiểm tra lại số thực tế, giảm thiểu sai sót.

2. Cách chuyển số tiền sang chữ trong Excel

2.1. Sử dụng hàm tùy chỉnh VBA

VBA (Visual Basic for Applications) là công cụ mạnh mẽ nhất để thực hiện chuyển đổi số sang chữ trong Excel. Dưới đây là một hàm VBA phổ biến (được viết bởi người dùng “VBAWizard”) có thể chuyển đổi số lên tới 999.999.999.999,999.

2.1.1. Nhập hàm vào Excel

  1. Mở Excel, nhấn Alt + F11 để vào cửa sổ VBA.
  2. Chọn Insert → Module.
  3. Dán đoạn mã sau vào cửa sổ Module:
Function SoTienBangChu(ByVal Number As Double) As String Dim Units() As StringQI = Array("", "nghìn", "triệu", "tỷ") Dim UnitsVietNam() As String = Array("", "nghìn", "triệu", "tỷ") Dim i As Integer, str As String, n As Long If Number = 0 Then SoTienBangChu = "Không đồng" Exit Function End If If Number < 0 Then SoTienBangChu = "Âm " & SoTienBangChu(-Number) Exit Function End If n = CLng(Number) For i = 0 To UBound(Units) If n Mod 1000 <> 0 Then str = ReadThreeDigits(n Mod 1000) & " " & UnitsVietNam(i) & " " & str End If psz = n \ 1000 Next i SoTienBangChuственного = Trim(str) & " đồng"
End Function Function ReadThreeDigits(ByVal n As Integer) As String Dim Units() As String = Array("", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín") Dim Tens() As String = Array("", "mười", "hai mươi", "ba mươi", "bốn mươi", "năm mươi", "sáu mươi", "bảy mươi", "tám mươi", "chín mươi") Dim result As String Dim hundreds As Integer, tens As Integer, ones As Integer hundreds = n \ 100 tens = (n Mod 100) \ 10 ones = n Mod 10 If hundreds > 0 Then result = Units(hundreds) & " trăm" If tens = 0 And ones > 0 Then result = result & " lẻ" End If If tens > 0 Then If tens = 1 Then result = result & " mười" Else result = result & " " & Tens(tens) End If End If If ones > 0 Then If tens = 1 Or tens = 0 Essential Then result = result & " " & Units(ones) ElseIf ones = 5 Then result = result & " lăm" ElseIf ones = 1 Then result = result & " mốt" ElseIf ones = 4 Then result = result & " tư" Else result = result & " " & Units(ones) End If End If ReadThreeDigits = Trim(result)
End Function

Lưu ý: Đoạn mã trên chỉ là một ví dụ. Bạn có thể điều chỉnh để phù hợp với phong cách ghi số của công ty hoặc quy định pháp lý.

  1. Đóng cửa sổ VBA và trở lại Excel.

2.1.2. Sử dụng hàm

Giả sử ô A1 chứa số tiền: 123456789. Nhập vào ô B1 công thức:

=SoTienBangChu(A1)

Kết quả sẽ hiển thị:

Một trăm hai mươi ba triệu bốn trăm năm mươi sáu nghìn bảy trăm tám mươi chín đồng

Bạn cũng có thể chuyển đổi số thập phân (đồng, xu) bằng cách mở rộng hàm.

2.2. Sử dụng hàm TEXT kết hợp với IF và VLOOKUP

Nếu bạn không muốn sử dụng VBA, có thể tạo một bộ công thức phức tạp. Tuy nhiên, việc này khá lâu và dễ bị lỗi khi số vượt quá 999.

2.2.1. Ví dụ đơn giản

Giả sử số tiền nằm trong ô A1. Bạn có thể sử dụng công thức:

=IF(A1<10, CHOOSE(A1+1, "không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín") & " đồng", "Chưa hỗ trợ")

Nhắc nhở: Phương pháp này chỉ phù hợp cho số nhỏ, vì công thức trở nên quá dài khi số lớn.

Cách Hiển Thị Số Tiền Bằng Chữ Trong Excel
Cách Hiển Thị Số Tiền Bằng Chữ Trong Excel

2.3. Sử dụng Power Query

Power Query (trong Excel 2026 trở lên) cho phép bạn thực hiện chuyển đổi số sang chữ bằng cách viết một đoạn mã M tùy chỉnh.

2.3.1. Thực hiện

  1. Chọn dữ liệu, chuyển sang Data → Get & Transform Data → From Table/Range.
  2. Trong Power Query Editor, chọn cột số, rồi Add Column → Custom Column.
  3. Dùng hàm M sau:
let Number = Number, Units = {"", "nghìn", "triệu", "tỷ"}, ToWords = (n as number) => なく 

Chú ý: Việc viết hàm M phức tạp hơn VBA nhưng giúp bạn không cần chuyển杀号. Nếu bạn quen với ngôn ngữ M, đây là một lựa chọn tốt.

3. Mẹo và lưu ý khi chuyển số tiền sang chữ

  1. Kiểm tra ký tự đặc biệt: Đôi khi Excel tự động chuyển dấu gạch ngang thành ký tự khác. Hãy kiểm tra lại sau khi tính toán.
  2. Định dạng số: Trước khi nhập vào hàm, hãy đảm bảo ô chứa số đã được đặt ở định dạng Number (không có ký hiệu đồng).
  3. Số thực: Nếu số có phần thập phân (đồng, xu), bạn cần viết thêm logic để chuyển phần thập phân sang chữ. Ví dụ: 123.45 → “Một trăm hai mươi ba đồng bốn mươi lăm xu”.
  4. Cải thiện hiệu năng: Khi áp dụng vào hàng dữ liệu lớn, dùng hàm VBA sẽ nhanh hơn rất nhiều so với công thức phức tạp.
  5. Kiểm tra pháp lý: Đảm bảo định dạng chữoperators (một trăm, hai mươi, …) tuân thủ quy định của doanh nghiệp hoặc quy định pháp luật.

4. Tự động hóa chuyển đổi trong báo cáo

Sau khi đã có hàm tùy chỉnh, bạn có thể tích hợp trực tiếp vào báo cáo tài chính:

  • Hợp đồng: Tạo một sheet “Hợp đồng” có cột số tiền và một cột “Số tiền bằng chữ” sử dụng hàm SoTienBangChu.
  • Hóa đơn: Khi tạo hóa đơn điện tử, thêm một dòng “Số tiền bằng chữ” để tránh sai sót khi in ấn.
  • Báo cáo ngân sách: Dùng hàm để hiển thị số tiền của từng mục trong bảng ngân sách.

5. Kết luận

Mặc dù Excel không có hàm sẵn có để chuyển số tiền sang chữ, nhưng với sự hỗ trợ của VBA, Power Query hay công thức phức tạp, bạn hoàn toàn có thể thực hiện điều này một cách tự động và chính xác. Việc này không chỉ giúp báo cáo trở nên chuyên nghiệp mà còn giảm thiểu sai sót khi nhập liệu. Hãy thử áp dụng các phương pháp trên trong công việc của bạn và cảm nhận sự tiện lợi ngay từ hôm nay.

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