Có thể bạn quan tâm: Ẩn Giá Trị 0 Trong Biểu Đồ Excel: Hướng Dẫn Chi Tiết Và Các Phương Pháp Thực Tiễn
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.
Có thể bạn quan tâm: Cách Xóa Các Dòng Không Có Dữ Liệu Trong Excel
1. Tại sao cần chuyển đổi số thành chữ trong Excel?
- 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).”
- 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.
- 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.
- 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.
Có thể bạn quan tâm: Cách Đổi Số Âm Sang Số Dương Trong Excel – 10 Phương Pháp Hiệu Quả
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"),"")
)
CHOOSElấy từ danh sách: “Một”, “Hai”, …, “Chín”.MIDlấy ký tự thứ nhất, thứ hai, …MODlấy phần dư của phép chia.TRIMloạ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

Có thể bạn quan tâm: Ứng Dụng Chuyển Đổi File Pdf Sang Excel: Giải Pháp Hiệu Qu Æt Và Đa Dạng
- Mở Excel, nhấn
Alt + F11để vào Visual Basic Editor. - Nhấp chuột phải vào
VBAProject (TênFile.xlsx), chọnInsert→Module. - Dán đoạn mã trên vào cửa sổ.
- Đóng cửa sổ VBA, trở lại Excel.
- 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
UCasehoặcCapitalizeđể 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ữ:
- Chọn dữ liệu, vào
Data→Get & Transform Data→From Table/Range. - Trong Power Query Editor, chọn cột số, vào
Add Column→Custom Column. - 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.)
- 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ỗi | Nguyên nhân | Giải pháp |
|---|---|---|
| Công thức trả về “#VALUE!” | Số có dấu thập phân, dấu cách thừa | Kiể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ố âm | Hàm không xử lý âm | Thêm phần kiểm tra If num < 0 |
| Trễ khi làm việc với hàng triệu dòng | Công thức phức tạp | Sử dụng hàm VBA hoặc Power Query |
| Chữ không được viết hoa | Hàm trả về chuỗi thường | Sử dụng UCase, Capitalize |
7. Mẹo giảm thời gian và tăng tính chính xác
- Sử dụng Named Range: Đặt tên cho ô chứa số, ví dụ
GiaTri, sau đó viết công thức=ReadNumber(GiaTri). - 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.
- 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.
- 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ữ) |
|---|---|---|---|
| 5 | 200,000 | 1,000,000 | |
| 3 | 450,000 | 1,350,000 | _SIGNAL |
Bạn muốn tự động điền cột “Thành Tiền (Chữ)”. Các bước:
- Tính “Thành Tiền” bằng công thức
=B2C2. - Viết công thức
=ReadNumber(D2)trong cột “Thành Tiền (Chữ)” (đặt hàm VBA đã viết). - 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ữ) |
|---|---|---|---|
| 5 | 200,000 | 1,000,000 | Một triệu đồng |
| 3 | 450,000 | 1,350,000 | Mộ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:
- Công thức Excel thuần – nhanh chóng nhưng có giới hạn về phạm vi số.
- Hàm VBA tùy chỉnh – linh hoạt, hỗ trợ số lớn, số âm, thập phân.
- 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.?,祝你工作顺利!

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ẻ.
