Để đổi số tiền thành chữ trong Excel (ví dụ như: 1,500,000 thành “Một Triệu Năm Trăm Nghìn Đồng” ta không thể sử dụng hàm sẵn có mà có thể sử dụng 2 cách sau:
- Cách 1 – Sử dụng mã VBA để chuyển đổi số tiền thành chữ (an toàn nhất và ít khi gây lỗi)
- Cách 2 – Sử dụng các Add-in như VnTools, UNIVNI, Doiso để cài đặt và chuyển đổi số tiền thành chữ (cách này dễ gây xung đột hơn và có thể gây lỗi)
Dưới đây là hướng dẫn chi tiết cách để chuyển số tiền thành chữ:
Cách 1: Sử dụng mã VBA để đổi số tiền thành chữ
Để sử dụng mã VBA để đổi số tiền thành chữ, ta thực hiện như sau:
Bước 1: Mở file Excel cần đổi số tiền thành chữ.
Bước 2: Nhấn Alt + F11 để mở cửa sổ chỉnh sửa Visual Basic
Bước 3: Trong Menu của cửa sổ Visual Basic vào Tab Insert > chọn Module
Bước 4: Ta sẽ thấy cửa sổ có tên “tên trang tính – Module 1“, ta sẽ copy toàn bộ mã VBA dưới đây rồi dán vào khung cửa sổ này:
Mã VBA để chuyển đổi số tiền thành chữ theo đơn vị tiền tệ Việt Nam:
Option Explicit
' Main Function to convert number to Vietnamese currency words (only whole Dong, no Xu)
Function SpellNumberVND(ByVal MyNumber)
Dim Dong As String, Temp As String
Dim DecimalPlace As Long, Count As Long
ReDim Place(9) As String
Place(2) = " Nghìn "
Place(3) = " Triệu "
Place(4) = " Tỷ "
Place(5) = " Nghìn Tỷ "
' Validate input
If Not IsNumeric(MyNumber) Then
SpellNumberVND = "Đầu vào không hợp lệ"
Exit Function
End If
' Handle negative numbers
If MyNumber < 0 Then
SpellNumberVND = "Số âm không được hỗ trợ"
Exit Function
End If
MyNumber = Trim(Str(MyNumber)) ' Convert to string and remove extra spaces
DecimalPlace = InStr(MyNumber, ".")
' Remove decimal part if any (since we don't need Xu)
If DecimalPlace > 0 Then
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
' Handle zero case early
If Val(MyNumber) = 0 Then
SpellNumberVND = "Không Đồng"
Exit Function
End If
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dong = Temp & Place(Count) & Dong
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
' Add currency unit
If Dong <> "" Then
Dong = Dong & " Đồng"
Else
Dong = "Không Đồng"
End If
SpellNumberVND = Dong
End Function
' Function to convert hundreds part
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3) ' Ensure 3 digits
' Convert the hundreds place
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Trăm "
End If
' Convert the tens and ones place
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
' Function to convert tens and ones place
Function GetTens(TensText)
Dim Result As String
Result = "" ' Null out the temporary function value
If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19
Select Case Val(TensText)
Case 10: Result = "Mười"
Case 11: Result = "Mười Một"
Case 12: Result = "Mười Hai"
Case 13: Result = "Mười Ba"
Case 14: Result = "Mười Bốn"
Case 15: Result = "Mười Lăm"
Case 16: Result = "Mười Sáu"
Case 17: Result = "Mười Bảy"
Case 18: Result = "Mười Tám"
Case 19: Result = "Mười Chín"
Case Else
End Select
Else ' If value between 20-99
Select Case Val(Left(TensText, 1))
Case 2: Result = "Hai Mươi "
Case 3: Result = "Ba Mươi "
Case 4: Result = "Bốn Mươi "
Case 5: Result = "Năm Mươi "
Case 6: Result = "Sáu Mươi "
Case 7: Result = "Bảy Mươi "
Case 8: Result = "Tám Mươi "
Case 9: Result = "Chín Mươi "
Case Else
End Select
Result = Result & GetDigit(Right(TensText, 1)) ' Retrieve ones place
End If
GetTens = Result
End Function
' Function to convert single digit to word
Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "Một"
Case 2: GetDigit = "Hai"
Case 3: GetDigit = "Ba"
Case 4: GetDigit = "Bốn"
Case 5: GetDigit = "Năm"
Case 6: GetDigit = "Sáu"
Case 7: GetDigit = "Bảy"
Case 8: GetDigit = "Tám"
Case 9: GetDigit = "Chín"
Case Else: GetDigit = ""
End Select
End Function
Bước 5: Nhấn Ctrl + S để lưu bảng tính.
Ta cần phải lưu lại cửa sổ làm việc. Khi lưu cửa sổ làm việc bằng macro, ta sẽ thấy thông báo “The following features cannot be saved in macro-free workbook”
Click vào No > khi thấy hộp thoại mới > chọn nơi lưu file > tại Save as type thì chọn Excel macro-enabled workbook rồi nhấn Save.
Bước 6: Sử dụng macro SpellNumberVND
Bây giờ, ta có thể sử dụng hàm SpellNumber trong bảng tính Excel để đổi số tiền thành chữ. (ví dụ ô A2 là ô chứa số tiền cần đổi thành chữ).
Ta sử dụng công thức =SpellNumberVND(A2)
Cách 2: Sử dụng các ADD-INS
1. Sử dụng vnTools
Bước 1: Tải vnTools tại link: https://download.com.vn/vntools-110998
Bước 2: Tiến hành cài đặt vnTools






Bước 3: Sử dụng vnTools để đổi số tiền thành chữ






Sau khi cài Add-ins xong, trên thanh công cụ excel sẽ có tab vnTools. Để đổi số tiền thành chữ trong bảng tính Excel, ta kích chọn mục Đổi số thành chữ (VN) như hình dưới.
Sẽ có 1 bảng xuất hiện > lần lượt chọn “ô cần chuyển đổi” và ” ô chứa kết quả” rồi nhấn VND() để hoàn tất chuyển đổi:


2. Sử dụng Add-in UNIVNI
Bước 1: Tải file Excel Add-in UNIVNI tại link: https://www.mediafire.com/file/6qegfra7tpwcwf8/UNIVNI.xla/file
Bước 2: Thêm file Excel vừa tải vào Excel




Tìm đến thư mục nơi bạn lưu file vừa tải ở Bước 1, kích chọn rồi ấn Open.


Bước 3: khi đã thêm add-ins UNIVNI thành công, ta sẽ sử dụng các công thức công thức sau để đổi số tiền thành chữ:
=UNI(Số_Tiền)khi sử dụng font chữ là Unicode.=VNI(Số_Tiền)được sử dụng nếu font chữ là VNI.
Ví dụ: chuyển số 252300 (ô A2) thành chữ. Tại ô B2 ghi “=UNI(A2)“.

3. Sử dụng Add-ins Doiso
Bước 1: Tải về file excel Doiso.xla tại link: https://www.mediafire.com/file/qknev0ju9d3nfl4/Doiso.xla/file
Bước 2: Thêm file vừa tải vào excel tương tự như đã làm với các Add-ins trước




File cần chọn có tên Doiso như ảnh dưới đây:


Bước 3: Cách sử dụng Doiso.xla để đổi số tiền thành chữ
Sau khi hoàn tất bước 2 ta có thể sử dụng công thức sau để đổi số thành chữ: =VND(Số_cần_đổi)
Ví dụ: chuyển số 252300 (ô A2) thành chữ. Tại ô B2 ghi “=VND(A2)“. ta được kết quả sau:

Trên đây là các cách để đổi số tiền thành chữ theo đơn vị tiền tệ Việt Nam. Mong rằng bài viết này hưu ích và chúc bạn áp dụng thành công!






