Xin giúp đỡ hàm chuyển đổi số thập phân sang dạng chữ (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

tunghg87

Thành viên mới
Tham gia
5/7/10
Bài viết
11
Được thích
0
Vấn đề của em là cần chuyển đổi chữ số thập phân sang dạng số.VÍ dụ như khi nhập vào 5,6 thì sẽ được dạng chữ là Năm Sáu. Khi nhập 5,0 Thì sẽ được là Năm Chẵn!
Mong các bác giúp đỡ e với.
Em cũng đã tham khảo nhiều bài viết nhưng các bài viết trước không dịch được số thập phân các bác ạ.
-------------------------------------------
Bác nào biết thì mail em với
tmtung.tk5l@gmail.com

Thx các bác
 
Bạn cho hỏi nếu nhập vào một số bất kỳ ví dụ như: 125,6 thì sẽ dịch ra như thế nào vậy?
 
Upvote 0
Vấn đề của em là cần chuyển đổi chữ số thập phân sang dạng số.VÍ dụ như khi nhập vào 5,6 thì sẽ được dạng chữ là Năm Sáu. Khi nhập 5,0 Thì sẽ được là Năm Chẵn!
Mong các bác giúp đỡ e với.
Em cũng đã tham khảo nhiều bài viết nhưng các bài viết trước không dịch được số thập phân các bác ạ.
-------------------------------------------
Bác nào biết thì mail em với
tmtung.tk5l@gmail.com

Thx các bác

Chưa hiểu ý bạn, nhưng bạn thử tham khảo hàm này xem có đúng theo ý của bạn không nhé

http://www.giaiphapexcel.com/forum/showthread.php?38196-G%E1%BB%ADi-m%E1%BB%8Di-ng%C6%B0%E1%BB%9Di-1-h%C3%A0m-%C4%91%E1%BB%8Dc-s%E1%BB%91-m%E1%BB%9Bi
 
Upvote 0
Có nghĩa là: em cần chuyển đổi điểm ở dạng số ra dạng chữ anh ạ.Nhưng mà yêu cầu của chỗ em làm là bắt buộc chỉ được dùng 2 từ.
ví dụ: 5,5 thì đổi ra là Năm rưỡi. 5,0 thì đổi ra là Năm chẵn. Còn lại các số thập phân khác như 5,1...5,9 thì là Năm Mốt...Năm Chín. Để in vào bảng điểm cho học sinh anh ạ.Rất mong các bác sớm giúp đỡ ko em toi mất. hu hu
 
Upvote 0
Có nghĩa là: em cần chuyển đổi điểm ở dạng số ra dạng chữ anh ạ.Nhưng mà yêu cầu của chỗ em làm là bắt buộc chỉ được dùng 2 từ.
ví dụ: 5,5 thì đổi ra là Năm rưỡi. 5,0 thì đổi ra là Năm chẵn. Còn lại các số thập phân khác như 5,1...5,9 thì là Năm Mốt...Năm Chín. Để in vào bảng điểm cho học sinh anh ạ.Rất mong các bác sớm giúp đỡ ko em toi mất. hu hu
Tôi đề xuất 1 cách như sau:
Bạn vào đây http://www.giaiphapexcel.com/forum/...-độ-nhanh-tối-đa-nhanh-hơn-80-các-Addins-khác
down cái Add-Ins đổi số sang chữ của Bác Phạm Duy Tuân về. Và tuỳ chỉnh cái tiện ích này và kết hợp thêm công một số hàm If(), Left() nếu cần là có thể đáp ứng được yêu cầu của bạn.
Tôi đã thử và thấy có thể đáp ứng được yêu cầu của bạn đấy. Tuy nhiên cách này hơi phức tạp.
Bạn xem trong file đính kèm tôi sử dụng 3 công thức khác nhau trong mỗi công thức tôi dùng các hàm cơ bản nên cũng rất dễ hiểu.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Hàn này ngắn hơn 1 xíu:

=IF(A2=0,"trứng ngỗng.",CHOOSE(A2,"Một","Hai","Ba","Bốn", "Năm","Sáu","Bảy","Tám","Chín","Mười")&" "&IF(INT(A2)=A2,"chẵn.",CHOOSE(--RIGHT(A2),"một", "hai", "ba","bốn","rưỡi","sáu","bảy","tám","chín")&"."))
 
Upvote 0
Hàn này ngắn hơn 1 xíu:

=IF(A2=0,"trứng ngỗng.",CHOOSE(A2,"Một","Hai","Ba","Bốn", "Năm","Sáu","Bảy","Tám","Chín","Mười")&" "&IF(INT(A2)=A2,"chẵn.",CHOOSE(--RIGHT(A2),"một", "hai", "ba","bốn","rưỡi","sáu","bảy","tám","chín")&"."))
Không đọc được các điểm lớn hơn 0 và bé hơn 1. Do hàm Choose(). Sửa lại như thế này sẽ không bị lỗi và ngắn hơn một tẹo.
Mã:
=CHOOSE(A2+1,"Trứng ngỗng","Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín","Mười")&" "&CHOOSE(MOD(A2,1)*10+1,"chẵn","một","hai","ba","bốn","rưỡi","sáu","bảy","tám","chín")&"."
 
Upvote 0
Nếu đưa vào Name, công thức sẽ ngắn hơn nữa:

Name 1:
Chan ={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";10\"Mười"}

Name 2:
Le ={1\"một";2\"hai";3\"ba";4\"bốn";5\"rưỡi";6\"sáu";7\"bảy";8\"tám";9\"chín"}

Công thức:
=IF(A2=0;"trứng ngỗng.";LOOKUP(INT(A2);Chan)&" "&IF(INT(A2)=A2;"chẵn.";LOOKUP(MOD(A2;1)*10;Le)&"."))

nếu không muốn trứng ngỗng mà muốn "Không chẵn" hoặc "Không không" thì sửa công thức hoặc sửa Name.
 
Lần chỉnh sửa cuối:
Upvote 0
Hình như công thức của Hữu Thắng giống tây đọc tiếng Việt rồi!

bạn ấy iêu cầu 5.1 fải đọc là năm mốt mà!
Ở trường hợp của bạn lại là hai một cho 2.1 hay tệ hơn 6.1 nó đọc sai làm thiệt thòi cho học sinh.

Rất hay ở chổ là xài "rưỡi" thay cho "năm" hay "lăm"
Mình đã viết hẵn hàm người dùng giống như đọc số ra chữ.

Sẽ đưa lên, nếu tác giả có nhu cầu (biểu thị bằng nút nhấn)
 
Upvote 0
bạn ấy iêu cầu 5.1 fải đọc là năm mốt mà!
Ở trường hợp của bạn lại là hai một cho 2.1 hay tệ hơn 6.1 nó đọc sai làm thiệt thòi cho học sinh.
Rất hay ở chổ là xài "rưỡi" thay cho "năm" hay "lăm"

Hàm Hữu Thắng là sửa lại hàm của mình đấy, bậu ơi. Sai cũng mình, mà hay ho cũng do mình, hông phải huuthang. Muốn "Mốt" thì sửa trong Choose, hoặc sửa trong Name (bài sau), đâu có khó hén!
 
Upvote 0
Hàm Hữu Thắng là sửa lại hàm của mình đấy, Muốn "Mốt" thì sửa trong Choose, hoặc sửa trong Name (bài sau), đâu có khó hén!

Tiếng Việt ta fong fú lắm nha;
11 đọc là mười một; nhưng 31 đọc là ba mốt; Theo mình hiểu iêu cầu của tác giả có cả chuyện 0.4 đọc là "không bốn" nữa cơ.

Chắc kiểu đọc này thì choosé() làm sao chịu thâu?!
 
Upvote 0
Tiếng Việt ta fong fú lắm nha;
11 đọc là mười một; nhưng 31 đọc là ba mốt; Theo mình hiểu iêu cầu của tác giả có cả chuyện 0.4 đọc là "không bốn" nữa cơ.

Chắc kiểu đọc này thì choosé() làm sao chịu thâu?!
Để xem tác giả muốn gì rồi tính tiếp. Đọc một, mốt hay rưỡi, năm gì dùng công thức cũng được hết.
 
Upvote 0
Tiếng Việt ta fong fú lắm nha;
11 đọc là mười một; nhưng 31 đọc là ba mốt; Theo mình hiểu iêu cầu của tác giả có cả chuyện 0.4 đọc là "không bốn" nữa cơ.

Chắc kiểu đọc này thì choosé() làm sao chịu thâu?!

Anh ơi, điểm thì chỉ có từ 0 đến 10 thôi. Mở rộng ra ba mốt, mười một làm gì.
 
Upvote 0
5,5 thì đổi ra là Năm rưỡi. 5,0 thì đổi ra là Năm chẵn. Còn lại các số thập phân khác như 5,1...5,9 thì là Năm Mốt...Năm Chín.

Cứ cái đà này thì 1.1 sẽ đọc ra sao: Một một hay mười một (?) & 2.1 đương nhiên sẽ fải đọc hai mốt chứ không hai một đâu.
 
Upvote 0
Theo mình nếu như cách đọc điểm thì:
VD: 0.5đ phải đọc nửa điểm, 0.6đ phải đọc không điểm sáu hay không phẩy (chấm) sáu điểm
hay 1.1 => một điểm mốt hay đọc một phẩy (chấm) một; chứ không thể đọc một một
hay 1.5 => một điểm rưỡi hay đọc một phẩy (chấm) năm; chứ không thể đọc một sáu
hay 5.4 => năm điểm bốn hay đọc năm phẩy (chấm) bốn
v.v...
như vậy nó mới hợp lý hơn, cần nhất quán 1 cách đọc thì việc sử lý cho vấn đề sẽ đơn giản hơn.
 
Upvote 0
Theo mình nếu như cách đọc điểm thì:
VD: 0.5đ phải đọc nửa điểm, 0.6đ phải đọc không điểm sáu hay không phẩy (chấm) sáu điểm
hay 1.1 => một điểm mốt hay đọc một phẩy (chấm) một; chứ không thể đọc một một
hay 1.5 => một điểm rưỡi hay đọc một phẩy (chấm) năm; chứ không thể đọc một sáu
hay 5.4 => năm điểm bốn hay đọc năm phẩy (chấm) bốn
v.v...
như vậy nó mới hợp lý hơn, cần nhất quán 1 cách đọc thì việc sử lý cho vấn đề sẽ đơn giản hơn.

Anh em mình làm theo ý tác giả mà chẳng thấy tác giả có ý kiến gì nhỉ?
 
Upvote 0
Các bác làm em cảm kích quá.Em vắt óc bao lâu không được vậy mà mới đưa lên mà mọi người giúp đỡ nhiều quá. Công việc của em chỉ là tính điểm từ 0 đến 10 thôi. Do công việc bận em cũng chưa thử được mấy công thức của mọi người.H em chỉ kịp vào cảm ơn mọi người rất nhiều.
Thành thật xin lỗi các bác. Vì em bận quá nên ko vào đọc bài được.Mong sự thông cảm của mọi người.
1 lần nữa e cảm ơn các bác nhé...
 
Upvote 0
Các anh ơi. riêng cái 1.1 thì đọc dùm em là một một thôi ạ.Nhưng hiếm khi xảy ra trường hợp đó lắm.Nếu khó quá. Thì cũng cứ để là một mốt như những số khác, hai mốt, ba mốt....
 
Upvote 0
Không đọc được các điểm lớn hơn 0 và bé hơn 1. Do hàm Choose(). Sửa lại như thế này sẽ không bị lỗi và ngắn hơn một tẹo.
Mã:
=CHOOSE(A2+1,"Trứng ngỗng","Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín","Mười")&" "&CHOOSE(MOD(A2,1)*10+1,"chẵn","một","hai","ba","bốn","rưỡi","sáu","bảy","tám","chín")&"."
Cảm ơn anh nhé.Hiện em đang dùng hàm của anh.Em không quan trong dai ngắn.Mà chỉ cần dễ dùng thôi ạ.Em thấy cái này cũng good nhưng nếu anh có thêm ý kiến nào hay thì bảo e với nha.
Nhưng mà anh ơi. cái này không dùng được nếu ở cột A2 em dùng hàm làm tròn round hả anh.Mấy anh xem dùm em với nhé.Ở Cái bản excel em gửi lên.Bên sheet 3 đó ạ!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Bạn sửa lại công thức như sau:
=CHOOSE(BX4+1,"Trứng ngỗng","Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín","Mười")&" "&CHOOSE(IF(MOD(BX4,1)*10<5,MOD(BX4,1)*10+1,MOD(BX4,1)*10+2),"chẵn","một","hai","ba","bốn","rưỡi","sáu","bảy","tám","chín")&"."
 
Upvote 0
Anh ơi có vẻ vẫn không ổn anh ạ! 7,5 thì bị nhảy lên là bảy sáu. 7,1 thì lại bị lùi lại là bảy chẵn. em để 2 công thức để các anh dễ đối chiếu rồi đấy ạ.Anh giúp em với
 

File đính kèm

Upvote 0
Bạn kiểm theo file đính kèm xem sao!
--=0
--=0
--=0
--=0
 

File đính kèm

Upvote 0
Dùng lookup là ổn nhất. Bạn test thử

(Dùng Name như bài #8)
 

File đính kèm

Upvote 0
vâng cảm ơn 2 anh em sẽ thử theo cách của 2 anh xem sao

Dùng lookup là ổn nhất. Bạn test thử

(Dùng Name như bài #8)
THX pro nhé. Bài của pro rất đúng ý em, cảm ơn anh rất nhiều.Vậy là chuẩn rồi anh ạ.

Vậy là coi như em đã hiểu được việc chuyển số sang chữ.Bây h em chỉ phải in bảng điểm là ok.Hiện em đang sài cách in bảng điểm theo kiểu trộn văn bản giữa word với excel.Em trộn file excel đã gửi cho mọi người, cùng với file word này.Sử dụng cách trộn thư ở word.Các anh thấy cách này của em liệu có ổn không ạ.Xin các anh chỉ bảo!
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Anh ơi có vẻ vẫn không ổn anh ạ! 7,5 thì bị nhảy lên là bảy sáu. 7,1 thì lại bị lùi lại là bảy chẵn. em để 2 công thức để các anh dễ đối chiếu rồi đấy ạ.Anh giúp em với
Đây là lỗi của Excel, có thể khắc phục bằng hàm ROUND()
 
Upvote 0
Theo tôi nghĩ ý của bạn là có ba trường hợp xảy ra như sau:
- Trường hợp 1: Nếu là số (x,0) thì được đọc là x chẵn (x là 1,2 ,3 ,4, ..., 10)
- Trường hợp 2: Nếu là số (x,5) thì được đọc là x rưỡi (x là 1,2 ,3 ,4, ..., 10)
- Trường hợp 3: Nếu là số (x,x) thì được đọc là x x (x là 1,2 ,3 ,4, 6, 7, 8, 9, 10 - không có 5 và 0)
Có đúng như vậy không bạn. Khi hiểu đúng mục đích của bạn thì mình mới giúp được
 
Upvote 0
Em chào cả nhà em là lính mới tinh cũng đang gặp vấn đề này. Sau khi tham khảo em cũng đã làm được nhưng em gặp phải một vấn đề khác mà em không làm được. Yêu cầu công việc của em là đổi thành 2 cách đọc khác nhau cho điểm nguyênđiểm lẻ năm

ví dụ:
1.0 ----> một,không (cái này nhờ tham khảo anh chị em làm được rồi)
5.5 ----> năm,năm (em làm hoài mà không được)
4.5 ----> bốn,năm

Em biến lại công thức của anh chị thành như vầy nè:

=IF(C2=0,"không,không",IF(C2=0.5,"không,năm",CHOOSE(C2,"một,không","hai,không","ba,không","bốn,không","năm,không","sáu,không","bảy,không","tám,không","chín,không","mười,không", IF(RIGHT(C2,1)=5,CHOOSE(RIGHT(C2,1),"năm")))))

mà không được nó cứ đọc luôn là 5.5 thành năm,không, 4.5 thành bốn,không. Em nghĩ mãi mà không ra. Anh chị giúp em với.!$@!!%#^#$
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom