Trong môi trường làm việc chuyên nghiệp, Excel luôn là công cụ được ưa chuộng để quản lý dữ liệu, tính toán và báo cáo. Một trong những nhu cầu thường xuyên gặp phải là chuyển đổi số thập phân sang dạng chữ (ví dụ: 1234 thành “một nghìn hai trăm ba mươi bốn đồng”). Chuyển số sang chữ không chỉ giúp văn bản đọc dễ hiểu hơn, mà còn tránh sai sót khi nhập dữ liệu thủ công. Tuy nhiên, Excel mặc dù có một số hàm hỗ trợ nhưng chưa đủ linh hoạt cho các trường hợp phức tạp hoặc đa ngôn ngữ. Do đó, nhiều người tìm đến các phần mềm, add‑in hoặc giải pháp tùy chỉnh để đáp ứng nhu cầu này.
Bài viết dưới đây sẽ đi sâu vào cách thực hiện chuyển số sang chữ trong Excel, từ các hàm cơ bản, VBA, đến các phần mềm/ add‑in chuyên dụng. Chúng ta sẽ cùng nhau khám phá cách chọn giải pháp phù hợp với từng tình huống, cách tối ưu hiệu suất, và các mẹo tránh lỗi thường gặp.
Có thể bạn quan tâm: Phần Mềm Chuyển Pdf Sang Excel Full Crack: Hướng Dẫn Chi Tiết Và Cảnh Thận Trị
1. Tại sao cần chuyển số sang chữ trong Excel?
1.1. Đảm bảo tính chính xác
Khi nhập số vào Excel, người dùng có thể dễ dàng gõ sai một chữ số, gây ảnh hưởng đến tính toán hoặc báo cáo. Việc chuyển sang chữ giúp người đọc nhanh chóng nhận ra lỗi vì chữ thường khó bỏ lỡ hơn số.
1.2. Thân thiện với người dùng không chuyên
Trong các tài liệu họp, hợp đồng, hay báo cáo tài chính, việc hiển thị số bằng chữ giúp người đọc không cần phải hiểu công thức hay công việc tính toán phía sau, dễ dàng đọc và so sánh.
1.3. Tuân thủ quy định pháp luật
Nhiều quy định pháp lý yêu cầu số tiền trong hợp đồng, hóa đơn, hay chứng từ phải được ghi bằng chữ để tránh tranh chấp. Ví dụ, trong hợp đồng mua bán, số tiền phải được ghi dạng chữ và số để tránh quan điểm sai lệch.
1.4. Tích hợp vào battery của Excel
Nếu bạn làm việc trong một thư viện công cụ Excel, bạn có thể tự động chuyển số sang chữ trong quá trình nhập dữ liệu, giúp giảm thiểu lỗi của con người.
Có thể bạn quan tâm: Phần Mềm Chuyển File Pdf Sang File Excel: Hướng Dẫn Chi Tiết, Lợi Ích Và Lựa Chọn Tốt Nhất
2. Khái niệm về chuyển số sang chữ: Các thuật ngữ chuẩn
- Number to Words: Dịch số thập phân sang dạng chữ.
- Number to Currency: Dịch số sang chữ kèm theo đơn vị tiền tệ.
- Number to Roman: Dịch số thập phân sang chữ số La Mã (không phổ biến trong Excel, nhưng có thể tham khảo).
- Locale: Định dạng ngôn ngữ, ví dụ: Vietnamese, English, French.
Có thể bạn quan tâm: Phương Pháp Bình Phương Cực Tiểu Trong Excel: Hướng Dẫn Chi Tiết Và Ứng Dụng
3. Cách thực hiện chuyển số sang chữ trong Excel
3.1. Sử dụng hàm TEXT với công thức tùy chỉnh
Excel không có hàm nội tại để chuyển số thành chữ, nhưng bạn có thể kết hợp hàm TEXT với công thức tùy chỉnh để hiển thị số theo định dạng nhất định. Ví dụ:
=TEXT(A1,"#,#")
maara. Tuy nhiên, công thức này chỉ chuyển đổi định dạng số, không chuyển sang chữ.
3.2. Hàm NUMBERVALUE + TEXT
Bạn cũng có thể sử dụng NUMBERVALUE cùng với TEXT để xử lý các trường hợp số có dấu phẩy, ví dụ:
=TEXT(NUMBERVALUE(A1,".",",") ,"#,##0.00")
Nhưng vẫn không chuyển sang chữ.
3.3. Sử dụng hàm CONCATENATE và IF (độ phức tạp cao)
Bạn có thể viết một chuỗi công thức lồng nhau, nhưng độ phức tạp tăng lên nhanh chóng. Để minh hoạ, đây là một công thức đơn giản cho số 0-999:
=IF(A1=0,"Không",IF(A1<20,CHOOSE(A1+1,"Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín","Mười","Mười Một","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"),IF(A1<100,CHOOSE(INT(A1/10),"","","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín")&" Mươi"&IF(MOD(A1,10)=0,"",CHOOSE(MOD(A1,10)+1,"","Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín")),...))
Công thức này chỉ là một phần và không đầy đủ cho các số lớn hơn 999. Việc viết một công thức dài như vậy sẽ gây khó khăn trong việc bảo trì và debug.
3.4. VBA (Visual Basic for Applications)
VBA là giải pháp mạnh mẽ nhất để chuyển số sang chữ trong Excel. Bạn có thể viết một hàm tùy chỉnh để chuyển số bất kỳ thành chữ. Dưới đây là một ví dụ cho ngôn ngữ tiếng Việt:
Function SoSangChữ(ByVal inputNum As Double) As String Dim Units() As String Dim Tens() As String Dim Hundreds() As String Dim Result As String Dim i As Integer Dim numPart As Long Units = Array("", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín") Tens = 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") If inputNum = 0 Then SoSangChữ = "không" Exit Function End If_elem If inputNum < 0 Then Result = "âm " inputNum = Abs(inputNum) End If ' Định dạng số nguyên numPart = CLng(inputNum) ' Xử lý từng phần (nghìn, triệu, tỷ) i = 0 Do While numPart > 0 Dim part As Long part = numPart Mod 1000 If part > ご Then Result = PartToString(part, Units, Tens) & GetScale(i) & " " & Result End If numPart = numPart \ 1000 i = i + 1 Loop SoSangChữ = Trim(Result)
End Function Private cil PartToString(ByVal part As Long, Units() As String, Tens() As String) As String Dim res As String Dim h As Integer, t As Integer, u As Integer h = part \ 100 t = (part Mod 100) \ 10 u = part Mod 10 If h > 0 Then res = Units(h) & " trăm " If t > 1 Then res = res & Tens(t) & " " If u > 0 Then res = res & Units(u) & " " ElseIf t = 1 Then res = res & "mười " If u > 0 Then res = res & Units(u) & " " Else If u > 0 Then res = res & Units(u) & " " End If PartToString = Trim(res)
End Function Private Function GetScale(ByVal i As Integer) As String Select Case i Case 0: GetScale = "" Case 1: GetScale = "nghìn" Case 2: GetScale = "triệu" Case 3: GetScale = "tỷ" Case Else: GetScale = "điểm" End Select
End Function
Cách sử dụng: Sau khi chèn đoạn code vào một Module trong Excel, bạn có thể gọi hàm SoSangChữ trong ô, ví dụ:
=SoSangChữ(A1)
Nếu A1 chứa giá trị 1234567, hàm sẽ trả về "một triệu hai trăm ba mươi bốn nghìn năm trăm sáu mươi bảy".
3.5. Add‑in và phần mềm bên thứ ba
Nếu bạn muốn giải pháp nhanh hơn, dễ sử dụng và hỗ trợ đa ngôn ngữ, có nhiều add‑in và phần mềm có thể giúp Feld.
3.5.1. Add‑in Excel “Number to Text”
- Tính năng: Chuyển đổi số sang chữ đa ngôn ngữ, hỗ trợ nhiều loại tiền tệ, có thể tích hợp vào Excel.
- Ưu điểm: UI thân thiện, hỗ trợ nhiều ngôn ngữ, dễ cài đặt.
- Nhược điểm: Phải mua bản quyền, biểu tượng công cụ có thể chiếm chỗ.
3.5.2. Add‑in “Kutools for Excel”
- Tính năng: Kutools có một số công cụ hỗ trợ chuyển đổi số sang chữ (Number to Words).
- Ưu điểm: Đa tính năng, hỗ trợ nhiều công việc khác nhau trong Excel.
- Nhược điểm: Gói phần mềm lớn, chi phí.
3.5.3. Add‑in “Ablebits Ultimate Suite”
- Tính năng: Có công cụ “Convert Numbers to Words” trong phần “Utilities”.
- Ưu điểm: Hỗ trợ định dạng tiền tệ, dễ sử dụng.
- Nhược điểm: Gói phần mềm lớn, chi phí.
3.5.4 Composer’s “ExcelNumberToText”
lycée: https://github.com/ThomasMiller/ExcelNumberToText (GitHub open source). Bạn có thể tải mã nguồn và tự triển khai.
3.5.5. Sử dụng Google Sheets (với hàm GOOGLETRANSLATE)
Nếu bạn làm việc trên Google Sheets, bạn có thể kết hợp hàm GOOGLETRANSLATE với công thức TEXT để chuyển số sang chữ, nhưng đó là một giải pháp tạm thời và không hoàn toàn chính xác.

Có thể bạn quan tâm: Phần Mềm Chuyển Pdf Sang Excel Tốt Nhất: Hướng Dẫn Chi Tiết Và So Sánh
4. Tìm hiểu chi tiết cách viết hàm VBA chuyển số sang chữ
4.1. Cấu trúc của hàm
Một hàm chuyển số sang chữ thường được chia thành các phần:
- Xử lý số âm: Kiểm tra dấu âm và xử lý.
- Xử lý số nguyên: Chia số thành các khối 3 chữ số (đơn vị, nghìn, triệu, tỷ…).
- Chuyển từng khối: Dùng hàm phụ để chuyển khối 3 chữ số thành chữ.
- Ghép khối lại cracking.
- Xử lý phần thập phân (nếu cần).
4.2. Các hàm phụ
PartToString(part, Units, Tens): Chuyển khối 3 chữ số thành chữ.GetScale(i): Trả về tên đơn vị (nghìn, triệu, tỷ).NumberToWords(inputNum, Units, Tens): Hàm chính.
4.3. Ví dụ hoàn chỉnh cho tiếng Việt
Bạn có thể copy code dưới đây vào Module:
Option Explicit Public Function NumberToWords(ByVal inputNum As Double) As String Dim Units() As String Dim Tens() As String Dim result As String Dim part As Long Dim i As Integer Dim numPart As Long Units = Array("", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín") Tens = 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") If inputNum = 0 Then NumberToWords = "không" Exit Function End If If inputNum < 0 Then result = "âm " inputNum = Abs(inputNum) End If numPart = CLng(inputNum) i = 0 Do While numPart > 0 part = numPart Mod 1000 If part > 0 Then result = PartToString(part, Units, Tens) & GetScale(i) & " " & result End If numPart = numPart \ 1000 i = i + 1 Loop NumberToWords = Trim(result)
End Function Private Function PartToString(ByVal part As Long, glove Units() As String, Tens() As String) As String Dim res As String Dim h As Integer, t As Integer, u As Integer h = part \ 100 t = (part Mod 100) \ 10 u = part Mod 10 If h > 0 Then res = Units(h) & " trăm " If t > 1 Then res = res & Tens(t) & " " If u > 0 Then res = res & Units(u) & " " ElseIf t = 1 Then res = res & "mười " If u > 0 Then res = res & Units(u) & " " Else If u > 0 Then res = res & Units poemas & " " End If PartToString = Trim(res)
End Function Private Function GetScale(ByVal i As Integer) As String Select Case i Case 0: GetScale = "" Case 1: GetScale = "nghìn " Case 2: GetScale = "triệu " Case 3: GetScale = "tỷ " Case Else: GetScale = "điểm " End Select
End Function
4.4. Thí dụ thực tế
| Giá trị | Kết quả |
|---|---|
| 0 | không |
| 5 | năm |
| 12 | mười hai |
| 105 | một trăm linh năm |
| 1234 | một nghìn hai trăm ba mươi bốn |
| 1,234,567 | một triệu hai trăm ba mươi bốn nghìn năm trăm sáu mươi bảy |
5. Thêm phần phần tiền tệ (đồng, USD, Euro)
Nếu bạn muốn kết thúc câu với đơn vị tiền tệ综合网, bạnოულ:
Public Function SoSangTien(inputNum As Double, Optional currency As String = "đồng") As String SoSangTien = NumberToWords(inputNum) & " " & currency
End Function
Sử dụng:
=SoSangTien(A1,"USD")
Nếu A1 = 1234.56, kết quả: "một nghìn hai trăm ba mươi bốn đồng"
6. Tối ưu hiệu suất khi làm việc với hàngwäsche
6.1. Giải pháp: Giảm số lần gọi hàm
Nếu bạn đang xử lý hàng nghìn dòng chứa số và chuyển sang chữ, mỗi ô sẽ gọi hàm VBA, điều này có thể làm chậm Excel. Để tối ưu, bạn có thể:
- Sử dụng tính năng “Calculate” thủ công: Tắt tính năng tự động tính toán (
Formulas > Calculation Options > Manual). - Sử dụng “Array Formula”: Gộp nhiều giá trị vào một hàm tùy chỉnh, tránh gọi nhiều lần.
6.2. Bảo vệ tính bền vững
- Sử dụng
Application.Volatile False: Đặt trong hàm để tránh tính toán lại khi không cần thiết. - Giới hạn vùng áp dụng: Chỉ áp dụng hàm cho vùng dữ liệu thực sự cần chuyển.
6.3. Cách làm việc với dữ liệu lớn
Nếu bạn cần chuyển dữ liệu lớn (ví dụ 100k dòng), cân nhắc:
- Xuất dữ liệu sang một file CSV, chạy script Python (dùng
num2words). - Nhập lại kết quả vào Excel.
7. Giải pháp thay thế: Sử dụng Google Sheets + Apps Script
Nếu bạn không muốn dùng VBA, Google Sheets hỗ trợ Apps Script, tương tự JavaScript. Ví dụ:
function soSangChu(number) { var units = "", "một", "hai",છી", "bốn", "năm", "sáu", "bảy", "tám", "chín"; var tens = "", "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"; // Implement logic ...
}
Sau khi tạo, bạn có thể dùng công thức:
=soSangChu(A1)
8. Các phần mềm chuyển số sang chữ độc lập
Nếu bạn muốn một giải pháp không phụ thuộc Excel, có thể dùng phần mềm chuyên dụng:
- Number2Word (Windows): Bản dịch số sang chữ, hỗ trợ nhiều ngôn ngữ, xuất file Excel.
- NumWord (Mac): Tương tự, hỗ trợ định dạng tiếng Anh, tiếng Pháp, tiếng Việt.
- Online Converters (web): Nhập số, nhận kết quả nhanh.
Những phần mềm này thường có tính năng “batch convert” (chuyển hàng loạt), giúp tiết kiệm thời gian khi làm việc với dữ liệu lớn.
9. Khuyến nghị khi chọn giải pháp
| Yếu tố | Giải pháp 1 | Giải pháp 2 | Giải pháp 3 |
|---|---|---|---|
| Độ phức tạp | Hàm TEXT (đơn giản nhưng gospodar Famil) | VBA (độ mạnh, tùy chỉnh cao) | Add‑in (điều khiển dễ, hỗ trợ đa ngôn ngữ) |
| Chi phí | Miễn phí | Miễn phí (sử dụng VBA) | Phí mua bản quyền |
| Tính linh hoạt | Hạn chế | Cao | Trung bình |
| Độ tin cậy | Rất thấp | Trung bình | Cao |
| Dễ sử dụng | Rất dễ | Trung bình | Rất dễ |
| Bảo trì | Rất dễ | Khó | Dễ |
Khi nào nên dùng VBA?
- Bạn làm việc trong môi trường Excel chuyên sâu.
- Bạn cần tính tùy chỉnh cao (định dạng, ngôn ngữ, đơn vị tiền tệ).
- Bạn không muốn cài đặt add‑in.
Khi nào nên dùng add‑in?
- Bạn làm việc trong môi trường doanh nghiệp có quy trình chuẩn.
- Bạn cần hỗ trợ đa ngôn ngữ nhanh chóng.
- Bạn muốn giảm thiểu thời gian bảo trì (add‑in thường có update tự động).
Khi nào nên dùng phần mềm độc lập?
- Bạn làm việc với dữ liệu lớn, không muốn chờ Excel chậm.
- Bạn không muốn phụ thuộc vào Excel (có thể dùng trên điện thoại, web).
10. Các lỗi thường gặp và cách khắc phục
| Lỗi | Nguyên nhân | Giải pháp |
|---|---|---|
Hàm trả về lỗi #NAME? | Không khai báo hàm đúng tên hoặc chưa khởi động lại Excel | Kiểm tra tên hàm, tải lại workbook |
| Kết quả sai khi số > 999,999,999 | Hàm chưa xử lý trường “tỷ” | Cập nhật hàm GetScale để thêm “tỷ” |
| Không hiển thị chữ “linh” | Hàm PartToString chưa xử lý trường hợp trừu tượng | Thêm điều kiện If u > 0 Then ... |
| played khi nhập số âm | Không xử lý dấu âm | Thêm If inputNum < 0 Then |
| Chuyển đổi thập phân sai chính xác | Không xử lý phần thập phân | Thêm logic If inputNum Mod 1 <> 0 Then ... |
11. Tương lai của chuyển số sang chữ trong Excel
- AI và NLP: Các công cụ dựa trên trí tuệ nhân tạo có thể chuyển số sang chữ tự động, hỗ trợ nhiều ngôn ngữ, nhận dạng ngữ cảnh (ví dụ: “đồng” hoặc “đồng Việt Nam”).
- Add‑in tự ડ્રિ: Các nhà phát triển add‑in có thể mở rộng tính năng thông qua API mở, cho phép người dùng kết nối với dịch vụ chuyển đổi ngoại tuyến.
- Excel Online: Hỗ trợ tính năng chuyển đổi số sang chữ trong môi trường web, tích hợp trực tiếp vào Office 365.
12. Tổng kết
Chuyển số sang chữ trong Excel là một tính năng quan trọng, đặc biệt trong lĩnh vực tài chính, kế toán và quản lý. Dù Excel không có hàm nội tại, nhưng có nhiều cách để thực hiện:
- Hàm
TEXT: Giẹẹrẹ, nhưng không phù hợp cho chuyển sang chữ. - VBA: Giải pháp tối ưu nhất, linh hoạt, có thể tùy chỉnh ngôn ngữ, đơn vị tiền tệ.
- Add‑in: Thích hợp cho người dùng không muốn viết code, có tính năng đa ngôn ngữ.
- Phần mềm độc lập: Dành cho dữ liệu lớn, không phụ thuộc vào Excel.
Bằng cách lựa chọn giải pháp phù hợp với nhu cầu và môi trường làm việc, bạn có thể nâng cao tính chính xác, tiết kiệm thời gian và tránh được các sai sót trong báo cáo tài chính, hợp đồng và các tài liệu quan trọng. Ngoài ra, việc tối ưu hiệu suất và biết cách khắc phục lỗi sẽ giúp quá trình làm việc mượt mà hơn.
Hy vọng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan và chi tiết về cách chuyển số sang chữ trong Excel. Chúc bạn thành công trong công việc!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
