Hướng dẫn Công thức chuyển đọc số thành chữ cho excel 365 và Google Sheets dễ nhất

Welcome to Vietnam iTX
Tham gia cộng đồng Vietnam iTX, khoe góc máy itx, review case mini-itx PC, chia sẻ, học hỏi kinh nghiệm build case mini-itx sff pc, nguồn flex, atx module flex 1u.
Đăng ký ngay | 7749 member đã tham gia

Công thức hàm chuyển đọc số thành chữ này có hữu dụng cho ae sử dụng trong thực tế không?

  • Không

  • Đã và đang sử dụng rất ổn!


Results are only viewable after voting.

kakalotss

96 học IT
Registered

Chia sẻ với ae đang sử dụng Excel hay Google Sheet để làm bảng thống kê, xuất hóa đơn, tính toán cần chuyển từ số thành văn bản chữ, đọc số tiền, giá tiền viết bằng chữ sử dụng 1 công thức hàm duy nhất tự động nhanh chóng, dễ dàng ai cũng có thể làm được​

Công thức chuyển đọc số thành chữ cho excel 365 và Google Sheets dễ nhất.jpg

  1. Đếm được tới số trăm tỷ tỷ
  2. 1 tỷ có 9 con số 0
  3. 100 tỷ tỷ = 20 con số 0

Hàm chuyển tiền thành chữ cho excel 365 và Google Sheets​

Code:
=ArrayFormula(LET(money;TEXT(B3*1;REPT(0;21));haichin;VSTACK("hai";"ba";"bốn";"năm";"sáu";"bảy";"tám";"chín");bangv;HSTACK(TEXT(SEQUENCE(10;1;0);"@");VSTACK("không";"một";haichin)&" trăm";SUBSTITUTE(SUBSTITUTE(VSTACK("lẻ";"mười";haichin)&" mươi";"lẻ mươi";"lẻ");"mười mươi";"mười");VSTACK("";"một";haichin));bonso;MID(money;SEQUENCE(4;1;10;3);3);baso;MID(money;SEQUENCE(3;1;1;3);3);tn;VSTACK(" tỷ, ";" triệu, ";" nghìn, ");ttn;VSTACK(" tỷ, ";" triệu, ";" nghìn, ";"");tex;TRIM(TEXTJOIN(;TRUE;IF(baso="000";"";VLOOKUP(MID(baso;1;1);bangv;1+1;FALSE)&" "&VLOOKUP(MID(baso;2;1);bangv;2+1;FALSE)&" "&VLOOKUP(MID(baso;3;1);bangv;3+1;FALSE)&tn);IF((INDEX(bonso;1)<>"000")+(SUM(baso*1)=0);"";" tỷ, "))&TEXTJOIN(;TRUE;IF(bonso="000";"";VLOOKUP(MID(bonso;1;1);bangv;1+1;FALSE)&" "&VLOOKUP(MID(bonso;2;1);bangv;2+1;FALSE)&" "&VLOOKUP(MID(bonso;3;1);bangv;3+1;FALSE)&ttn);" đồng"));viet_hoa;SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(LEFT(tex;LEN("không trăm lẻ "))="không trăm lẻ ";SUBSTITUTE(tex;"không trăm lẻ ";"";1);IF(LEFT(tex;LEN("không trăm "))="không trăm ";SUBSTITUTE(tex;"không trăm ";"";1);IF(LEFT(tex;LEN("lẻ nghìn, "))="lẻ nghìn, ";SUBSTITUTE(tex;"lẻ nghìn, ";"";1);tex)));"lẻ triệu, ";"triệu, ");"lẻ nghìn, ";"nghìn, ");"lẻ đồng";" đồng");"mươi năm";"mươi lăm");"mươi một";"mươi mốt");"lẻ tỷ, ";"tỷ, ");"nghìn, tỷ, ";"nghìn tỷ, ");"triệu, tỷ, ";"triệu tỷ, ");", đồng";" đồng");SUBSTITUTE(viet_hoa;LEFT(viet_hoa);UPPER(LEFT(viet_hoa));1)))

Hàm sử dụng Lambda và Reduce sử dụng trên Google Sheet​

Code:
=ArrayFormula(Iferror(Reduce("Đọc số thành chữ";B3:B;Lambda(x;y;{x;Regexreplace(Substitute(Substitute(Trim(Substitute(Substitute(Substitute(Substitute(Substitute(Substitute(Regexreplace(Substitute(Substitute(Substitute(Substitute(Transpose(Query(Transpose(Iferror(Vlookup(Split(Regexreplace(Trim(Regexreplace(Trim(y);"đ";));"(\S)";"$1+");"+.");{Sequence(9)\{"một";"hai";"ba";"bốn";"năm";"sáu";"bảy";
"tám";"chín"}};2;0);"-")&" "&Vlookup(Transpose(Sort(Sequence(Len(Regexreplace(Trim(y);"\D+|-";)));1;0));{Sequence(15)\{"đồng";"mươi";"trăm";"nghìn";"mươi";"trăm";"triệu";
"mươi";"trăm";"tỷ";"mươi";"trăm";"nghìn tỷ";"mươi";"trăm"}};2;0));;9^4));"- mươi";"lẻ");"- trăm";"không trăm");"không trăm lẻ -";);"lẻ - nghìn";"nghìn");"triệu  nghìn";
"triệu");"lẻ - triệu";"triệu");"tỷ  triệu";"tỷ");"lẻ - tỷ";"tỷ");"lẻ -";);"nghìn tỷ";"nghìn");"-";));"một mươi";"mười");"mươi một";"mươi mốt");"^.";Proper(Vlookup(
Left(y)*1;{Sequence(9)\{"m";"h";"b";"b";"n";"s";"b";"t";"c"}};2;0)))}))))

Bảng tính mẫu cho ae ví dụ và thực hành:​



Nếu ae có công thức hàm nào tối ưu hơn có thể comment bên dưới cho mọi người cùng học hỏi nhé
 
Last edited:
3 Comments
Registered

Chia sẻ với ae đang sử dụng Excel hay Google Sheet để làm bảng thống kê, xuất hóa đơn, tính toán cần chuyển từ số thành văn bản chữ, đọc số tiền, giá tiền viết bằng chữ sử dụng 1 công thức hàm duy nhất tự động nhanh chóng, dễ dàng ai cũng có thể làm được​

View attachment 3173
  1. Đếm được tới số trăm tỷ tỷ
  2. 1 tỷ có 9 con số 0
  3. 100 tỷ tỷ = 20 con số 0

Hàm chuyển tiền thành chữ cho excel 365 và Google Sheets​

Code:
=ArrayFormula(LET(money;TEXT(B3*1;REPT(0;21));haichin;VSTACK("hai";"ba";"bốn";"năm";"sáu";"bảy";"tám";"chín");bangv;HSTACK(TEXT(SEQUENCE(10;1;0);"@");VSTACK("không";"một";haichin)&" trăm";SUBSTITUTE(SUBSTITUTE(VSTACK("lẻ";"mười";haichin)&" mươi";"lẻ mươi";"lẻ");"mười mươi";"mười");VSTACK("";"một";haichin));bonso;MID(money;SEQUENCE(4;1;10;3);3);baso;MID(money;SEQUENCE(3;1;1;3);3);tn;VSTACK(" tỷ, ";" triệu, ";" nghìn, ");ttn;VSTACK(" tỷ, ";" triệu, ";" nghìn, ";"");tex;TRIM(TEXTJOIN(;TRUE;IF(baso="000";"";VLOOKUP(MID(baso;1;1);bangv;1+1;FALSE)&" "&VLOOKUP(MID(baso;2;1);bangv;2+1;FALSE)&" "&VLOOKUP(MID(baso;3;1);bangv;3+1;FALSE)&tn);IF((INDEX(bonso;1)<>"000")+(SUM(baso*1)=0);"";" tỷ, "))&TEXTJOIN(;TRUE;IF(bonso="000";"";VLOOKUP(MID(bonso;1;1);bangv;1+1;FALSE)&" "&VLOOKUP(MID(bonso;2;1);bangv;2+1;FALSE)&" "&VLOOKUP(MID(bonso;3;1);bangv;3+1;FALSE)&ttn);" đồng"));viet_hoa;SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(LEFT(tex;LEN("không trăm lẻ "))="không trăm lẻ ";SUBSTITUTE(tex;"không trăm lẻ ";"";1);IF(LEFT(tex;LEN("không trăm "))="không trăm ";SUBSTITUTE(tex;"không trăm ";"";1);IF(LEFT(tex;LEN("lẻ nghìn, "))="lẻ nghìn, ";SUBSTITUTE(tex;"lẻ nghìn, ";"";1);tex)));"lẻ triệu, ";"triệu, ");"lẻ nghìn, ";"nghìn, ");"lẻ đồng";" đồng");"mươi năm";"mươi lăm");"mươi một";"mươi mốt");"lẻ tỷ, ";"tỷ, ");"nghìn, tỷ, ";"nghìn tỷ, ");"triệu, tỷ, ";"triệu tỷ, ");", đồng";" đồng");SUBSTITUTE(viet_hoa;LEFT(viet_hoa);UPPER(LEFT(viet_hoa));1)))

Hàm sử dụng Lambda và Reduce sử dụng trên Google Sheet​

Code:
=ArrayFormula(Iferror(Reduce("Đọc số thành chữ";B3:B;Lambda(x;y;{x;Regexreplace(Substitute(Substitute(Trim(Substitute(Substitute(Substitute(Substitute(Substitute(Substitute(Regexreplace(Substitute(Substitute(Substitute(Substitute(Transpose(Query(Transpose(Iferror(Vlookup(Split(Regexreplace(Trim(Regexreplace(Trim(y);"đ";));"(\S)";"$1+");"+.");{Sequence(9)\{"một";"hai";"ba";"bốn";"năm";"sáu";"bảy";
"tám";"chín"}};2;0);"-")&" "&Vlookup(Transpose(Sort(Sequence(Len(Regexreplace(Trim(y);"\D+|-";)));1;0));{Sequence(15)\{"đồng";"mươi";"trăm";"nghìn";"mươi";"trăm";"triệu";
"mươi";"trăm";"tỷ";"mươi";"trăm";"nghìn tỷ";"mươi";"trăm"}};2;0));;9^4));"- mươi";"lẻ");"- trăm";"không trăm");"không trăm lẻ -";);"lẻ - nghìn";"nghìn");"triệu  nghìn";
"triệu");"lẻ - triệu";"triệu");"tỷ  triệu";"tỷ");"lẻ - tỷ";"tỷ");"lẻ -";);"nghìn tỷ";"nghìn");"-";));"một mươi";"mười");"mươi một";"mươi mốt");"^.";Proper(Vlookup(
Left(y)*1;{Sequence(9)\{"m";"h";"b";"b";"n";"s";"b";"t";"c"}};2;0)))}))))

Bảng tính mẫu cho ae ví dụ và thực hành:​



Nếu ae có công thức hàm nào tối ưu hơn có thể comment bên dưới cho mọi người cùng học hỏi nhé
kakalotss
Đang sử dụng công thức này, k biết cái nào nhẹ hơn nhỉ:))
Code:
=ArrayFormula(IFERROR(MAP(B3:B;LAMBDA(st;ArrayFormula(Regexreplace(Substitute(Substitute(Trim(Substitute(Substitute(Substitute(Substitute(Substitute(Substitute(Regexreplace(Substitute(Substitute(Substitute(Substitute(Transpose(Query(Transpose(Iferror(Vlookup(Split(Regexreplace(Trim(Substitute(st;"đ";));"(\S)";"$1+");"+.");{Sequence(9)\{"một";"hai";"ba";"bốn";"năm";"sáu";"bảy";
"tám";"chín"}};2;0);"-")&" "&Vlookup(Transpose(Sort(Sequence(Len(Regexreplace(Trim(st);"\D+";)));1;0));{Sequence(15)\{"đồng.";"mươi";"trăm";"nghìn";"mươi";"trăm";"triệu";
"mươi";"trăm";"tỷ";"mươi";"trăm";"nghìn tỷ";"mươi";"trăm"}};2;0));;9^4));"- mươi";"lẻ");"- trăm";"không trăm");"không trăm lẻ -";);"lẻ - nghìn";"nghìn");"triệu nghìn";
"triệu");"lẻ - triệu";"triệu");"tỷ triệu";"tỷ");"lẻ - tỷ";"tỷ");"lẻ -";);"nghìn tỷ";"nghìn");"-";));"một mươi";"mười");"mươi một";"mươi mốt");"^.";Proper(Vlookup(
Left(st)*1;{Sequence(9)\{"m";"h";"b";"b";"n";"s";"b";"t";"c"}};2;0))))))))
 
Registered

Chia sẻ với ae đang sử dụng Excel hay Google Sheet để làm bảng thống kê, xuất hóa đơn, tính toán cần chuyển từ số thành văn bản chữ, đọc số tiền, giá tiền viết bằng chữ sử dụng 1 công thức hàm duy nhất tự động nhanh chóng, dễ dàng ai cũng có thể làm được​

View attachment 3173
  1. Đếm được tới số trăm tỷ tỷ
  2. 1 tỷ có 9 con số 0
  3. 100 tỷ tỷ = 20 con số 0

Hàm chuyển tiền thành chữ cho excel 365 và Google Sheets​

Code:
=ArrayFormula(LET(money;TEXT(B3*1;REPT(0;21));haichin;VSTACK("hai";"ba";"bốn";"năm";"sáu";"bảy";"tám";"chín");bangv;HSTACK(TEXT(SEQUENCE(10;1;0);"@");VSTACK("không";"một";haichin)&" trăm";SUBSTITUTE(SUBSTITUTE(VSTACK("lẻ";"mười";haichin)&" mươi";"lẻ mươi";"lẻ");"mười mươi";"mười");VSTACK("";"một";haichin));bonso;MID(money;SEQUENCE(4;1;10;3);3);baso;MID(money;SEQUENCE(3;1;1;3);3);tn;VSTACK(" tỷ, ";" triệu, ";" nghìn, ");ttn;VSTACK(" tỷ, ";" triệu, ";" nghìn, ";"");tex;TRIM(TEXTJOIN(;TRUE;IF(baso="000";"";VLOOKUP(MID(baso;1;1);bangv;1+1;FALSE)&" "&VLOOKUP(MID(baso;2;1);bangv;2+1;FALSE)&" "&VLOOKUP(MID(baso;3;1);bangv;3+1;FALSE)&tn);IF((INDEX(bonso;1)<>"000")+(SUM(baso*1)=0);"";" tỷ, "))&TEXTJOIN(;TRUE;IF(bonso="000";"";VLOOKUP(MID(bonso;1;1);bangv;1+1;FALSE)&" "&VLOOKUP(MID(bonso;2;1);bangv;2+1;FALSE)&" "&VLOOKUP(MID(bonso;3;1);bangv;3+1;FALSE)&ttn);" đồng"));viet_hoa;SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(LEFT(tex;LEN("không trăm lẻ "))="không trăm lẻ ";SUBSTITUTE(tex;"không trăm lẻ ";"";1);IF(LEFT(tex;LEN("không trăm "))="không trăm ";SUBSTITUTE(tex;"không trăm ";"";1);IF(LEFT(tex;LEN("lẻ nghìn, "))="lẻ nghìn, ";SUBSTITUTE(tex;"lẻ nghìn, ";"";1);tex)));"lẻ triệu, ";"triệu, ");"lẻ nghìn, ";"nghìn, ");"lẻ đồng";" đồng");"mươi năm";"mươi lăm");"mươi một";"mươi mốt");"lẻ tỷ, ";"tỷ, ");"nghìn, tỷ, ";"nghìn tỷ, ");"triệu, tỷ, ";"triệu tỷ, ");", đồng";" đồng");SUBSTITUTE(viet_hoa;LEFT(viet_hoa);UPPER(LEFT(viet_hoa));1)))

Hàm sử dụng Lambda và Reduce sử dụng trên Google Sheet​

Code:
=ArrayFormula(Iferror(Reduce("Đọc số thành chữ";B3:B;Lambda(x;y;{x;Regexreplace(Substitute(Substitute(Trim(Substitute(Substitute(Substitute(Substitute(Substitute(Substitute(Regexreplace(Substitute(Substitute(Substitute(Substitute(Transpose(Query(Transpose(Iferror(Vlookup(Split(Regexreplace(Trim(Regexreplace(Trim(y);"đ";));"(\S)";"$1+");"+.");{Sequence(9)\{"một";"hai";"ba";"bốn";"năm";"sáu";"bảy";
"tám";"chín"}};2;0);"-")&" "&Vlookup(Transpose(Sort(Sequence(Len(Regexreplace(Trim(y);"\D+|-";)));1;0));{Sequence(15)\{"đồng";"mươi";"trăm";"nghìn";"mươi";"trăm";"triệu";
"mươi";"trăm";"tỷ";"mươi";"trăm";"nghìn tỷ";"mươi";"trăm"}};2;0));;9^4));"- mươi";"lẻ");"- trăm";"không trăm");"không trăm lẻ -";);"lẻ - nghìn";"nghìn");"triệu  nghìn";
"triệu");"lẻ - triệu";"triệu");"tỷ  triệu";"tỷ");"lẻ - tỷ";"tỷ");"lẻ -";);"nghìn tỷ";"nghìn");"-";));"một mươi";"mười");"mươi một";"mươi mốt");"^.";Proper(Vlookup(
Left(y)*1;{Sequence(9)\{"m";"h";"b";"b";"n";"s";"b";"t";"c"}};2;0)))}))))

Bảng tính mẫu cho ae ví dụ và thực hành:​



Nếu ae có công thức hàm nào tối ưu hơn có thể comment bên dưới cho mọi người cùng học hỏi nhé
kakalotss
https://docs.google.com/spreadsheets/d/1rVkQVMDXPatxkDYnHv5Hp0Zh5l6w4krLB7AK6cAxw8c/edit#gid=99212619
 
Advertisement