Chia sẻ: Công thức chuyển số thành chữ cho Excel 2007

Liên hệ QC
Công thức hay quá , cảm ơn anh Thắng đã chia sẻ.
 
Lần chỉnh sửa cuối:
Như đã hứa, hôm nay tôi chia sẻ công thức chuyển số thành chữ sử dụng được trên Excel 2007 trở lên.
Mã:
=IF(ABS(A1)>=10^15;"###";IF(A1<0;"Âm ";MID("KMHBBNSBTC";LEFT(ROUND(A1;0))+1;1))&MID(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(TEXT(A1;SUBSTITUTE("0;0";0;"0\-0\+0\*0\-0\+0\=0\-0\+0\/0\-0\+0\*0\-0\+0"));LEN(ROUND(ABS(A1);0))*2-1);"0-0+0*";"");"0-0+0/";"");"0-0+0";"");"0+0";"");"0+";" lẻ");"+0";"+");"+5";"+ lăm");"1+";" mười");"+1";"+ mốt");"_=";"_");0;" không");1;" một");2;" hai");3;" ba");4;" bốn");5;" năm");6;" sáu");7;" bảy");8;" tám");9;" chín");"+";" mươi");"-";" trăm");"*";" ngàn,");"/";" triệu,");",=";"=");"=";" tỷ,")&"  ";",  ";""));2-(A1<0);999))
Lưu ý: Công thức trên chỉ chuyển được số trong phạm vi từ -10^15+1 đến 10^15-1, ngoài phạm vi này công thức sẽ trả về "###"
Bạn @cantl vào nhận hàng nhé.
--
[/CODE]
--
-460.101.895.031
Âm bốn trăm sáu mươi tỷ, một trăm lẻ một triệu, tám trăm chín mươi lăm ngàn, không trăm ba mươi mốt
Negative four hundred and sixty billion, one hundred and one million, eight hundred and ninety-five thousand and thirty-one

Công thức tuyệt vời quá, nhưng bác cho em hỏi bác có thêm công thức chuyển qua tiếng Anh trên Excel 2007 trở lên nữa ko thì cho em xin. Như ví dụ :
50000VND chuyển qua tiếng Anh là "Fifty thousand dong" và em muốn bỏ dấu phẩy giữa các đơn vị triệu, ngàn, trăm, ... thì edit công thức lại như thế nào vậy ? Mong bác giải đáp

Cám ơn bác
 
Thì trước giờ tôi cũng có biết LET với LAMBDA là gì đâu, tôi dùng Excel 2007 từ xưa đến giờ. Tại thấy cái bạn giỏi excel kia hô to quá nên tôi mới dùng excel online làm thử xem thế nào thôi.
Hình như bỏ chữ giỏi đi rồi bác
 
Công thức tuyệt vời quá, nhưng bác cho em hỏi bác có thêm công thức chuyển qua tiếng Anh trên Excel 2007 trở lên nữa ko thì cho em xin. Như ví dụ :
50000VND chuyển qua tiếng Anh là "Fifty thousand dong" và em muốn bỏ dấu phẩy giữa các đơn vị triệu, ngàn, trăm, ... thì edit công thức lại như thế nào vậy ? Mong bác giải đáp

Cám ơn bác
=SUBSTITUTE("dấu, phẩy, này, phải, không";",";"")
 

File đính kèm

  • 1681447404655.png
    1681447404655.png
    94.4 KB · Đọc: 19
Em xin CT chỉ đọc số thôi với ạ, Cảm ơn anh !
 
Như đã hứa, hôm nay tôi chia sẻ công thức chuyển số thành chữ sử dụng được trên Excel 2007 trở lên.
Tiếng Việt:
Mã:
=IF(ABS(A1)>=10^15;"###";IF(A1<0;"Âm ";MID("KMHBBNSBTC";LEFT(ROUND(A1;0))+1;1))&MID(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(TEXT(A1;SUBSTITUTE("0\*0\=0\/0\*0;0\*0\=0\/0\*0";0;"0\-0\+0"));LEN(ROUND(ABS(A1);0))*2-1);"0-0+0*";"");"0-0+0/";"");"0-0+0";"");"0+0";"");"0+";" lẻ");"+0";"+");"+5";"+ lăm");"1+";" mười");"+1";"+ mốt");"_=";"_");0;" không");1;" một");2;" hai");3;" ba");4;" bốn");5;" năm");6;" sáu");7;" bảy");8;" tám");9;" chín");"+";" mươi");"-";" trăm");"*";" ngàn,");"/";" triệu,");",=";"=");"=";" tỷ,")&"  ";",  ";""));2-(A1<0);999))
Tiếng Anh:
Mã:
=IF(ABS(A1)>=10^15;"###";IF(A1<0;"Negative ";MID("ZOTTFFSSENTETTFFSSEN";LEFT(ROUND(A1;0);IFERROR(IF(LEFT(ROUND(A1;0))*MOD(INT(LOG10(ROUND(ABS(A1);0)));3)=1;2;1);1))+1;1))&MID(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RIGHT(TEXT(A1;SUBSTITUTE("0\\0\=0\/0\*0;0\\0\=0\/0\*0";0;"0\-0\+0"));LEN(ROUND(ABS(A1);0))*2-1);"0-0+0=";"");"0-0+0/";"");"*0-";"* and");"0-0+0*";"");"0-";"");"0+";"");"1+0";" ten");"1+1";" eleven");"1+2";" twelve");"1+3";" thirteen");"1+4";"4teen");"1+5";" fifteen");"1+6";"6teen");"1+7";"7teen");"1+8";"8een");"1+9";"9teen");"2+";" twenty:");"3+";" thirty:");"4+";" forty:");"5+";" fifty:");"8+";"8y:");"+";"ty:");"y:0";"y");0;" zero");1;" one");2;" two");3;" three");4;" four");5;" five");6;" six");7;" seven");8;" eight");9;" nine");"-";" hundred and");"*";" thousand,");"/";" million,");"=";" billion,");"\";" trillion,");": ";"-");" and zero";"");", a";" a")&"  ";",  ";""));2-(A1<0);999))
Lưu ý: Các công thức trên chỉ chuyển được số trong phạm vi từ -10^15+1 đến 10^15-1, ngoài phạm vi này công thức sẽ trả về "###"
Bạn @cantl vào nhận hàng nhé.
--
Nhân tiện tôi chia sẻ luôn công thức chuyển số thành chữ tiếng Việt và tiếng Anh sử dụng trên Excel 365 và Goolge Sheet, không giới hạn độ lớn của số cần đọc (số lớn nhập vào dạng chuỗi).
Tiếng Việt:
Mã:
=LET(so;A1;d;SIGN(so)+2;n;"00"&IF(ISTEXT(so);MID(so;1+(d=1);99);TEXT(so;"0;0"));l;LEN(n);g;INT(l/3);r;SUBSTITUTE(TEXTJOIN(",";1;MAP(SEQUENCE(g;1;g;-1);LAMBDA(k;LET(s;LEFT(n;l-k*3+3);a;{"không";"một";"hai";"ba";"bốn";"năm";"sáu";"bảy";"tám";"chín"};b;MIN(k;MOD(k-2;3)+2);x;RIGHT(s;3)*1;y;MOD(x;100);z;MOD(y;10);IF(x>0;IF(LEN(s)>4;" "&INDEX(a;INT(x/100)+1)&" trăm"&IF(AND(y<10;z>0);" lẻ";"");"")&IF(y>=20;" "&INDEX(a;INT(y/10)+1)&" mươi";IF(y>=10;" mười";""))&IF(z>0;LET(t;(y>11)*((z=1)+(z=5)*2)+1;" "&CHOOSE(t;INDEX(a;z+1);"mốt";"lăm"));"")&CHOOSE(b;"";" ngàn";" triệu";" tỷ");IF(b=4;" tỷ";""))))));", tỷ";" tỷ");CHOOSE(d;"Âm"&r;"Không";UPPER(MID(r;2;1))&MID(r;3;999)))
Tiếng Anh:
Mã:
=LET(so;A1;d;SIGN(so)+2;n;"00"&IF(ISTEXT(so);MID(so;1+(d=1);99);TEXT(so;"0;0"));l;LEN(n);g;INT(l/3);r;SUBSTITUTE(TEXTJOIN(",";1;MAP(SEQUENCE(g;1;g;-1);LAMBDA(k;LET(s;LEFT(n;l-k*3+3);a;{"zero";"one";"two";"three";"four";"five";"six";"seven";"eight";"nine";"ten";"eleven";"twelve";"thirteen";"fourteen";"fifteen";"sixteen";"seventeen";"eighteen";"nineteen"};b;{"";"twenty";"thirty";"forty";"fifty";"sixty";"seventy";"eighty";"ninety"};x;RIGHT(s;3)*1;y;MOD(x;100);z;MOD(y;10);IF(x>0;IF(LEN(s)>4;IF(x<100;IF(k=1;" and";"");" "&INDEX(a;INT(x/100)+1)&" hundred"&IF(y>0;" and";""));"")&IF(y>=20;" "&INDEX(b;INT(y/10))&IF(z>0;"-"&INDEX(a;z+1);"");IF(y>0;" "&INDEX(a;y+1);""))&CHOOSE(k;"";" thousand"; " million"; " billion"; " trillion";" quadrillion";" quintillion";" sextillion";" septillion";" octillion");"")))));", and";" and");CHOOSE(d;"Negative"&r;"Zero";UPPER(MID(r;2;1))&MID(r;3;999)))
--
-460.101.895.031
Âm bốn trăm sáu mươi tỷ, một trăm lẻ một triệu, tám trăm chín mươi lăm ngàn, không trăm ba mươi mốt
Negative four hundred and sixty billion, one hundred and one million, eight hundred and ninety-five thousand and thirty-one
Cảm ơn anh đã chia sẻ. Đúng hàm em cần đi tìm bao lâu nay. file mình chạy đổi số chữ dùng VBA sang máy khác họ không mở macro toàn bị lỗi
 
@huuthang_bd : Tôi copy công thức đọc số thành chữ từ file có định dạng .xlsx sang file có định dạng .xls thì báo lỗi như hình dưới. Thì sửa thế nào vậy bạn?
jyusda.PNG

Excel 2010 32bit.
 
Web KT
Back
Top Bottom