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
Web KT

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

Back
Top Bottom