Chuyển những con số trong excel thành chữ

Ðề: ghi số tiền bằng chữ trên excel

[you] giúp mình với. Để thể hiện số tiền bằng chữ của 1 ô excel thì dùng lệnh gì. Mình đã thấy họ làm nhưng sao mình ko làm được. Các cao thủ giúp mình với. Thanks.

Dễ thôi. bạn hãy vào đây tham khảo hướng dẫn và tải về dùng bạn nhé. Chúc bạn thành công
http://www.giaiphapexcel.com/forum/showthread.php?t=1047
 
Ðề: ghi số tiền bằng chữ trên excel

Bạn có macro của hàm VND chưa?
Nếu có rồi thì hãy mở nén ra và làm như sang nhé
EXcel/ tools/ Add-ins chọn Brown và chọn hàm bạn đã gỡ nén chọn ok
gõ số và = VND
Nếu không mình sẽ cho bạn hàm đó ko2404@yahoo.com
-----------------------------------------------------------------------------------------
Đúng như huuthoai đã nói nhưng bạn chú ý là khi ta copy chữ số qua Word để trộn thư chẳng hạn thì bạn hãy paste đặt biệt nhé. Nếu không thì bạn phải gõ hàm VND vào macro để chạy thôi.
 
Sửa lần cuối:
Ðề: Chuyển những con số trong excel thành chữ

Đầu tiên các bạn tải file này về:
Giải nén và kích hoạt file, sẽ xuất hiện 1 bảng thông báo, chọn Enable Macro.
Sau đó bạn mở file Excel chọn ô sẽ xuất hiện kết quả rồi vào Insert/Function.
Trong khung "Or select a category" chọn "User defined" chọn tên hàm (ở đây là vnd) ----> ok.
Xuất hiện thêm 1 bảng "Function Aguments", trong khung "Numcurrency" chọn ô chần đổi từ số ra chữ ----> ok.
Sẽ xuất hiện kết quả.
Nếu sau khi đã làm đầy đủ các bước trên mà vẫn ko đc thì vào Tool/Macro/Security. Trong thẻ "Security level" chọn chế độ trung bình "Medium" -----> ok và thực hiện lại các bước trên.

Mình thấy GS giải thích rất rõ ràng, mình làm cái được ngay. Có điều không có phím tắt nên mỗi lần muốn đổi số ra chữ lại phải làm theo trình tự Insert/Function/Or select a category/User defined/vnd rất mất thời gian. Có cách nào làm tắt được không vậy bạn?
 
Ðề: ghi số tiền bằng chữ trên excel

Xin góp ý về cái này;
huuthoai chỉ biết được một cái thôi, bạn phải có macro đọc chữ số tiền nhé bạn, xong ngay tại ô bạn muốn đọc số ra thành tiền đồng bạn dùng hàm VND nhé. Chúc nhu tin làm tốt, mời Bác [you] góp ý kiến ?
Thân


Chỉ hỏi nhỏ một cái: nếu dùng bảng mã Unicode thì sao mấy bác?

Nếu mấy cái add-ins của các chiến hữu nào mà có luôn cái này thì quá tốt, bởi vì có nhiều nơi hiện nay dùng Unicode, mà nếu code trong VBA nói riêng, VB nói chung (không phải VB.NET nha), không thể Unicode được đâu.

Thông thường mấy cái add-ins lưu trong file XLA, nên các bác giúp cho anh em một chút nữa là, tạo một vài cái bảng trong một sheet nào đó để "dịch" số ra chữ theo mã Unicode. Rồi trong các macro, ta tham chiếu tới chúng mà không trực tiếp gõ chuỗi vào macro.
 
Ðề: Chuyển những con số trong excel thành chữ

Mình vẫn không hiểu bác nói "chọn ô cần để công thức" ? ví dụ mình muốn chuyển số 123.000đ thành chữ, thì sau khi mình đã cài đặt xong, nhấp đúp vào nó để kích hoạt rồi mở file excel có số 123.000 lên rồi mình làm sao để nó thành chữ?
Mong bác tận tình chỉ giúp.

Xin nói thêm cho bạn nè ! nếu bạn có file *.xla (tải về file đọc số thành chữ phần mềm này chuyên dùng cho excel),bạn chép vào thư mục ......\documents and setting\administrator\application data\microsoft\add-ins , sau đó bạn kích hoạt excel lên rồi, bạn vào Tool/add-in, check chọn solver addin, chọn browse ; chọn tên file mà bạn đã chép vào thư mục add-ins ; sau đó chọn ok là xong .
Khi thực hiện chuyển đổi số sang chữ , bạn vào menu, chọn inser\function xuất hiện hộp thoại, tại dòng or select a category,bạn chọn use define ( hàm đã được định nghĩa ), chọn ô cần chuyển số thành chữ, chọn ok là xong
chúc bạn thành công
 
Ðề: hàm =VND(ô cần đọc giá trị ra chữ) báo lỗi #NAME?

Cái này , xin có ý kiến
1. bạn đã định dạng marco chưa ( hoặc chọn marco trong add-ins chưa ?)
2. ban có marco để đọc VND chưa , nếu có rồi bạn đã add chưa ?
nếu 2 vấn đề trên, bạn đã thực hiện thì bạn có thể làm lại một cách từ từ coi xem có được không ?
chúc bạn làm tốt
làm một ly nào
:cheers1::sweatdrop::cheers1:

Mình là y như các bác hướng dẫn nhưng ra số mà không đọc được vì bị lỗi font. Chuyển unicode, hay TCVN gì cũng vậy. Tiền VND thì đọc lỗi font nhưng USD thì đọc đúng. xin bác [you] tư vấn giúp. Thanks.
 
Sửa lần cuối:
Ðề: ghi số tiền bằng chữ trên excel

Xin góp ý về cái này;
huuthoai chỉ biết được một cái thôi, bạn phải có macro đọc chữ số tiền nhé bạn, xong ngay tại ô bạn muốn đọc số ra thành tiền đồng bạn dùng hàm VND nhé. Chúc nhu tin làm tốt, mời Bác [you] góp ý kiến ?
Thân

Nếu bạn không có file macro ấy thì bạn mail cho tôi, tôi sẽ chuyển cho bạn file ấy và kèm cách dướng dẫn sử dụng luôn
 
Ðề: Chuyển những con số trong excel thành chữ

Xin nói thêm cho bạn nè ! nếu bạn có file *.xla (tải về file đọc số thành chữ phần mềm này chuyên dùng cho excel),bạn chép vào thư mục ......\documents and setting\administrator\application data\microsoft\add-ins , sau đó bạn kích hoạt excel lên rồi, bạn vào Tool/add-in, check chọn solver addin, chọn browse ; chọn tên file mà bạn đã chép vào thư mục add-ins ; sau đó chọn ok là xong .
Khi thực hiện chuyển đổi số sang chữ , bạn vào menu, chọn inser\function xuất hiện hộp thoại, tại dòng or select a category,bạn chọn use define ( hàm đã được định nghĩa ), chọn ô cần chuyển số thành chữ, chọn ok là xong
chúc bạn thành công

bạn làm tuần tự như tôi nói vậy đó !
-----------------------------------------------------------------------------------------
Hôm trước mình có tải file chuyển con số trong excel thành chữ, mình đã cài được rồi nhưng không biết sử dụng làm sao, mong các bác chỉ giúp mình với. Cảm ơn các bác nhiều!

Xin nói thêm cho bạn nè ! nếu bạn có file *.xla (tải về file đọc số thành chữ phần mềm này chuyên dùng cho excel),bạn chép vào thư mục ......\documents and setting\administrator\application data\microsoft\add-ins , sau đó bạn kích hoạt excel lên rồi, bạn vào Tool/add-in, check chọn solver addin, chọn browse ; chọn tên file mà bạn đã chép vào thư mục add-ins ; sau đó chọn ok là xong .
Khi thực hiện chuyển đổi số sang chữ , bạn vào menu, chọn inser\function xuất hiện hộp thoại, tại dòng or select a category,bạn chọn use define ( hàm đã được định nghĩa ), chọn ô cần chuyển số thành chữ, chọn ok là xong
chúc bạn thành công
 
Sửa lần cuối:
Ðề: Chuyển những con số trong excel thành chữ

Mình thấy GS giải thích rất rõ ràng, mình làm cái được ngay. Có điều không có phím tắt nên mỗi lần muốn đổi số ra chữ lại phải làm theo trình tự Insert/Function/Or select a category/User defined/vnd rất mất thời gian. Có cách nào làm tắt được không vậy bạn?
Chỉ còn có cách là bạn cố nhớ tên hàm đó rồi gõ trực tiếp vào.
Ví dụ bạn nhìn ở những ô đã được đọc thành chữ cũ, trên thanh công thức nó ghi chẳng hạn là "=doc_VND(A1)"
thì khi bạn cần đọc số trong ô A8 bạn gõ vào "=doc_VND(A8)"
 
Ðề: ghi số tiền bằng chữ trên excel

Chỉ hỏi nhỏ một cái: nếu dùng bảng mã Unicode thì sao mấy bác?

Nếu mấy cái add-ins của các chiến hữu nào mà có luôn cái này thì quá tốt, bởi vì có nhiều nơi hiện nay dùng Unicode, mà nếu code trong VBA nói riêng, VB nói chung (không phải VB.NET nha), không thể Unicode được đâu.

Thông thường mấy cái add-ins lưu trong file XLA, nên các bác giúp cho anh em một chút nữa là, tạo một vài cái bảng trong một sheet nào đó để "dịch" số ra chữ theo mã Unicode. Rồi trong các macro, ta tham chiếu tới chúng mà không trực tiếp gõ chuỗi vào macro.

Đơn giản là ta cứ đọc theo font chữ VNI hoặc TCVN rồi lấy kết quả đó dịch sang bảng mã Unicode trước khi kết xuất ra kết quả cuối cùng.
Đây là đoạn code chuyển 1 chuỗi mã TCVN3 sang Unicode (và ngược lại):
Mã:
Function TCVN2UNI(txtString As String, Optional isReversed As Boolean = False) As String
' This function will do the conversion of text string into unicode
Dim iStr As String, repTxt As String, mText As String
Dim i As Long, j As Long
Dim iUnicode As Variant ' array to keep unicode char set
Dim iTCVN As Variant ' array to keep TCVN char set
Dim iProcList() As String ' array to keep what to convert
 
'parse the parameter into this local variable
iStr = txtString
mText = txtString
 
iUnicode = Array(225, 224, 7843, 227, 7841, 259, 7855, 7857, 7859, 7861, 7863, 226, _
7845, 7847, 7849, 7851, 7853, 233, 232, 7867, 7869, 7865, 234, 7871, 7873, 7875, _
7877, 7879, 237, 236, 7881, 297, 7883, 243, 242, 7887, 245, 7885, 244, 7889, 7891, _
7893, 7895, 7897, 417, 7899, 7901, 7903, 7905, 7907, 250, 249, 7911, 361, 7909, _
432, 7913, 7915, 7917, 7919, 7921, 253, 7923, 7927, 7929, 7925, 273, 193, 192, 195, _
258, 194, 212, 416, 431, 272)
 
iTCVN = Array(184, 181, 182, 183, 185, 168, 190, 187, 188, 189, 198, 169, 202, 199, 200, _
201, 203, 208, 204, 206, 207, 209, 170, 213, 210, 211, 212, 214, 221, 215, 216, 220, _
222, 227, 223, 225, 226, 228, 171, 232, 229, 230, 231, 233, 172, 237, 234, 235, 236, _
238, 243, 239, 241, 242, 244, 173, 248, 245, 246, 247, 249, 253, 250, 251, 252, 254, _
174, 193, 192, 195, 161, 162, 164, 165, 166, 167)
 
' Reenlarge the array
ReDim iProcList(1, 133)
' process the vowel only and covert to asc code
For i = 1 To Len(mText)
repTxt = Mid(mText, i, 1)
If AscW(repTxt) > 122 Then
iStr = Replace(iStr, repTxt, "[" & AscW(repTxt) & "]")
mText = Replace(mText, repTxt, " ")
' write the processed list
iProcList(1, j) = "[" & AscW(repTxt) & "]"
If isReversed Then
iProcList(0, j) = getelementno(AscW(repTxt), iUnicode)
Else
iProcList(0, j) = getelementno(AscW(repTxt), iTCVN)
End If
j = j + 1
End If
Next
If j = 0 Then
ToUnicode = txtString
Exit Function
End If
ReDim Preserve iProcList(1, j - 1)
' now convert to unicode
For i = 0 To UBound(iProcList, 2)
If isReversed Then
iStr = Replace(iStr, iProcList(1, i), ChrW(iTCVN(Val(iProcList(0, i)))))
Else
iStr = Replace(iStr, iProcList(1, i), ChrW(iUnicode(Val(iProcList(0, i)))))
End If
Next
fExit:
ToUnicode = iStr
End Function
Giả sử đã có function docVND(...)
thì ở chỗ trả về: docVND = sodadocthanhchu
sửa lại thành: docVND = TCVN2UNI(Cstr(sodadocthanhchu))


File kèm theo đây là cách đọc số thành chữ do tôi viết cách đây khá lâu với cách đọc hòan tòan không đụng hàng...:cheers1:
Trong file này cách chuyển đổi từ bảng mã VNI sang Unicode cũng khác với cách trên (lại không đụng hàng nữa !!!).
(File mở, mọi người đều có thể tham khảo code, dùng font chữ VNI).
 

Đính kèm

  • doctien.xls
    30 KB · Lượt xem: 378
Ðề: ghi số tiền bằng chữ trên excel

[you] giúp mình với. Để thể hiện số tiền bằng chữ của 1 ô excel thì dùng lệnh gì. Mình đã thấy họ làm nhưng sao mình ko làm được. Các cao thủ giúp mình với. Thanks.

cám ơn bạn đã nhớ đến tôi, việc bạn nhờ thì tôi sẵn sàng giúp đỡ . bạn hãy sao chép toàn bộ đoạn lệnh sau đây rồi vào menu/tools/macro/visualbasic editor -----> xuất hiện màn hình Visual basic , bạn vào Inser/module ---------> xuất hiện box của module, bạn dán đoạn lệnh sau vào, sau đó bạn chọn file/close and return excel (quay lại excel ) . Khi thực hiện bạn chỉ cần gõ doctien(ô có số liệu cần đọc) , enter là xong ; được rồi nhớ định dạng kiểu font lại nhé (.vntime). chúc bạn thành công !!!!!
------------------đoạn code nè ---------------
Public Function Docso(number)
' By Hoang Nguyen
' Dich tu so ra thanh tien voi phong chu .VN

' Kiem tra truong hop dac biet voi so 0 va 1
If number = 0 Then
Dich = "Kh"ng."
ElseIf number = 1 Then
Dich = "Mét."
Else
' Neu khong phai 2 truong hop tren thi tiep tuc lam
so = Array("kh"ng", "mét", "hai", "ba", "bèn", "n¨m", "s¸u", "by", "t¸m", "chÝn") 'mang so
DV = Array(".", "ngh×n", "triÖu", "tû", "ngh×n") 'mang don vi
SL = Len(Round(number, 0)) 'So luong ky tu trong chuoi da loai cac chu so thap phan
cap = Round(SL / 3 + 0.2, 0) 'Tinh xem chuoi nam trong pham vi mang don vi nao
Thua = SL Mod 3 'So ky tu cua mang don vi lon nhat
' Vong lap mang don vi
For i = 1 To cap
'Tinh so ky tu cua mang dang xet, Kiem tra xem co phai mang lon nhat khong
If i = cap And Thua <> 0 Then
b = Thua
Else
b = 3
End If
'Loc lay mang don vi can doc
ai = Left(Right(Round(number, 0), i * 3), b)
SLi = Len(ai)
'Kiem tra truong hop dac biet mang don vi dang xet bang khong het
If ai = "000" Then
If i = 1 Then
Dich = "."
Else
Dich = Dich
End If

Else
'Vong lap doc ky tu trong mang dang xet
For j = 1 To b
Hang = Array(DV(i - 1), "mi", "tr¨m") 'Mang don vi tinh cua ky tu
Docso = Mid(ai, (b + 1 - j), 1) 'Loc lay ky tu can doc
'Kiem tra truong hop dac biet ky tu bang khong
If Docso = 0 Then
If j = 1 Then
Doc = "" & Hang(j - 1)
danhdau1 = 1 'Thong bao ky tu don vi cua mang doc bang khong
ElseIf j = 2 Then
If danhdau1 = 1 Then
Doc = ""
danhdau2 = 1 'Thong bao 2 ky tu dau tien cua mang den bang khong
Else
Doc = "linh" 'Truong hop dac biet khi chu so hang chuc bang khong
End If
Else
If danhdau2 = 1 Then
Doc = "" 'Truong hop dac biet khi ca 3 chu so trong mang deu bang khong
Else
Doc = so(Docso) & " " & Hang(j - 1)
End If
End If
ElseIf Docso = 1 And j = 2 Then
Doc = "mêi" 'Trng hop dac biet khi ky tu hang chuc cua mang bang mot
ElseIf Docso = 5 And j = 1 And b <> 1 Then
Doc = "l¨m" & " " & Hang(j - 1) 'Truong hop dac biet khi ky tu hang don vi cua mang bang 5
ElseIf Docso = 4 And j = 1 And SL <> 1 Then
Doc = "t" & " " & Hang(j - 1) 'Truong hop dac biet khi ky tu hang don vi cua mang bang 4
Else
Doc = so(Docso) & " " & Hang(j - 1)
End If
Dich = Doc & " " & Dich 'Ket hop cac so da doc
Next
'Dua cac danh dau ve gia tri ban dau
danhdau1 = 0
danhdau2 = 0
End If
Next

End If

Docso = UCase(Left(Dich, 1)) & Mid(Dich, 2) 'Dua ra ket qua va sua ky tu dau tien thanh viet hoa.

End Function

'2. Hàm ??c s? ti?n:

Public Function Doctien(sotien)
' By Hoang Nguyen
' Dich tu so ra thanh tien voi phong chu .VN

' Kiem tra truong hop dac biet voi so 0 va 1
If sotien = 0 Then
Dich = "Kh«ng ®ång."
ElseIf sotien = 1 Then
Dich = "Mét ®ång."
Else
' Neu khong phai 2 truong hop tren thi tiep tuc lam
so = Array("kh«ng", "mét", "hai", "ba", "bèn", "n¨m", "s¸u", "by", "t¸m", "chÝn") 'mang so
DV = Array("®ång.", "ngh×n", "triÖu", "tû", "ngh×n") 'mang don vi
SL = Len(Round(sotien, 0)) 'So luong ky tu trong chuoi da loai cac chu so thap phan
cap = Round(SL / 3 + 0.2, 0) 'Tinh xem chuoi nam trong pham vi mang don vi nao
Thua = SL Mod 3 'So ky tu cua mang don vi lon nhat
' Vong lap mang don vi
For i = 1 To cap
'Tinh so ky tu cua mang dang xet, Kiem tra xem co phai mang lon nhat khong
If i = cap And Thua <> 0 Then
b = Thua
Else
b = 3
End If
'Loc lay mang don vi can doc
ai = Left(Right(Round(sotien, 0), i * 3), b)
SLi = Len(ai)
'Kiem tra truong hop dac biet mang don vi dang xet bang khong het
If ai = "000" Then
If i = 1 Then
Dich = "®ång."
Else
Dich = Dich
End If

Else
'Vong lap doc ky tu trong mang dang xet
For j = 1 To b
Hang = Array(DV(i - 1), "mi", "tr¨m") 'Mang don vi tinh cua ky tu
Docso1 = Mid(ai, (b + 1 - j), 1) 'Loc lay ky tu can doc
'Kiem tra truong hop dac biet ky tu bang khong
If Docso1 = 0 Then
If j = 1 Then
Doc = "" & Hang(j - 1)
danhdau1 = 1 'Thong bao ky tu don vi cua mang doc bang khong
ElseIf j = 2 Then
If danhdau1 = 1 Then
Doc = ""
danhdau2 = 1 'Thong bao 2 ky tu dau tien cua mang den bang khong
Else
Doc = "linh" 'Truong hop dac biet khi chu so hang chuc bang khong
End If
Else
If danhdau2 = 1 Then
Doc = "" 'Truong hop dac biet khi ca 3 chu so trong mang deu bang khong
Else
Doc = so(Docso1) & " " & Hang(j - 1)
End If
End If
ElseIf Docso1 = 1 And j = 2 Then
Doc = "mêi" 'Trng hop dac biet khi ky tu hang chuc cua mang bang mot
ElseIf Docso1 = 5 And j = 1 And b <> 1 Then
Doc = "l¨m" & " " & Hang(j - 1) 'Truong hop dac biet khi ky tu hang don vi cua mang bang 5
ElseIf Docso1 = 4 And j = 1 And SL <> 1 Then
Doc = "t" & " " & Hang(j - 1) 'Truong hop dac biet khi ky tu hang don vi cua mang bang 4
Else
Doc = so(Docso1) & " " & Hang(j - 1)
End If
Dich = Doc & " " & Dich 'Ket hop cac so da doc
Next
'Dua cac danh dau ve gia tri ban dau
danhdau1 = 0
danhdau2 = 0
End If
Next

End If

Doctien = UCase(Left(Dich, 1)) & Mid(Dich, 2) 'Dua ra ket qua va sua ky tu dau tien thanh viet hoa.

End Function
 
Ðề: Chuyển những con số trong excel thành chữ

Exel thì được nhưng copy vào Access thì lại sai. Bạn đưa code access cho mọi người dùng với
 
Ðề: Chuyển những con số trong excel thành chữ

Cảm ơn bạn nhiều nha, nhưng mình vẫn chưa làm được, hic ...
mình đã cài phần mềm Vntools rồi, trên bảng add-ins cũng hiện lên dấu check chỗ NTD's tools rồi, nhưng sao mình mở file excel và đánh câu lệnh trên thì nó lại không chuyển thành chữ.

Bác ơi hình như em nhầm hàm công thức chuyên rồi.Ct của em khác của bác.Thông cảm nhé
 
Sửa lần cuối:
Ðề: Chuyển những con số trong excel thành chữ

Exel thì được nhưng copy vào Access thì lại sai. Bạn đưa code access cho mọi người dùng với

Kính nể. Gửi bài lúc 4h33 sáng. Bái phục bái phục . :cheers1:
Nhưng mà không hiểu bạn copy doạn code nào và sai như thế nào thì làm sao đây?
 
Ðề: ghi số tiền bằng chữ trên excel

File kèm theo đây là cách đọc số thành chữ do tôi viết cách đây khá lâu với cách đọc hòan tòan không đụng hàng...:cheers1:
Trong file này cách chuyển đổi từ bảng mã VNI sang Unicode cũng khác với cách trên (lại không đụng hàng nữa !!!).
(File mở, mọi người đều có thể tham khảo code, dùng font chữ VNI).

Đúng là không đụng hàng.
Bác muontiennguoi viết đoạn này hay lắm. Bác chơi đệ quy chắc tay đó.
Bái phục, bái phục. :191:
Phờ tui cũng viết đệ quy nhưng có điều hơi dài dòng.
 
Ðề: Chuyển những con số trong excel thành chữ

Chào các anh các chị. Em đã làm và kết quả là thế này:vD:188.506.000
- Đọc VND: Moät traêm taùm möôi taùm trieäu naêm traêm leû saùu ngaøn ñoàng
- Đọc USD: One hundred eighty eight milion five hundred and six thousand dollars and cents only.
Anh chị giúp em cái font VNĐ với. Em dốt lắm xin vui lòng chỉ bảo chi tiết. Em cảm ơn nhiều.
 
Ðề: Chuyển những con số trong excel thành chữ

Bạn nên chuyển sang font chữ VNI-Times sẽ được như ý
 
Ðề: Chuyển những con số trong excel thành chữ

Mình chuyển được mà.Bạn lưu ý là font chữ VNI nha
 
Ðề: Chuyển những con số trong excel thành chữ

còn cách nào đơn giản nữa không bạn.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top