a.nguoidensau
Thành viên hoạt động



- Tham gia
- 12/4/12
- Bài viết
- 138
- Được thích
- 28
Ai đặt ra cái quy tắc làm tròn ngộ vậy trời? Cùng là số 1.5 mà ở hàng 2 thì làm tròn thành 1, xuống hàng 10 thì làm tròn thành 2. Vậy thì biết đường nào mà xử?Xin chào mọi người, tôi có 1 dãy số cần làm tròn như trong File, nhưng tôi lại chưa biết cách, ai biết xin chỉ giúp tôi.
Xin chân thành cảm ơn.
=IF(ISODD(A2),ROUNDUP(A2,0),ROUNDDOWN(A2,0))
=ROUNDUP(A2,0)-ISEVEN(A2)
Cảm ơn bạn đã quan tâm, việc làm tròn số đấy gọi là "chẵn lấy lẻ bỏ" không phải là do mình nghĩ ra, mà do quy định của ngành nghề mà.Ai đặt ra cái quy tắc làm tròn ngộ vậy trời? Cùng là số 1.5 mà ở hàng 2 thì làm tròn thành 1, xuống hàng 10 thì làm tròn thành 2. Vậy thì biết đường nào mà xử?
Nếu số 1.5 ở hàng 2 được làm tròn thành 2 thì tôi dự đoán ra quy tắc thế này: Nếu phần nguyên là số lẻ thì làm tròn lên, ngược lại thì làm tròn xuống (đến đơn vị). Với quy tắc này thì công thức sẽ là:
Hoặc:Mã:=IF(ISODD(A2),ROUNDUP(A2,0),ROUNDDOWN(A2,0))
Mã:=ROUNDUP(A2,0)-ISEVEN(A2)
Trước hết, tôi nhầm một chút ở công thức trên: Thay vì gõ ISODD(A2) thì phải sửa lại thành ISODD(QUOTIENT(A2,1)), tương tự cho hàm ISEVEN.Cảm ơn bạn đã quan tâm, việc làm tròn số đấy gọi là "chẵn lấy lẻ bỏ" không phải là do mình nghĩ ra, mà do quy định của ngành nghề mà.
Còn 2 công thức mà bạn giúp mình không hiểu sao chỉ thấy báo #NAME? , vì mình dùng Office 2003. Bạn xem lại giúp mình, xin cảm ơn bạn.
=IF(MOD(QUOTIENT(A2,1),2),ROUNDUP(A2,0),ROUNDDOWN(A2,0))
=ROUNDDOWN(A2,0)+MOD(QUOTIENT(A2,1),2)
Thật là buồn vì mình đã làm theo hướng dẫn của bạn mà vẫn chưa được.Trước hết, tôi nhầm một chút ở công thức trên: Thay vì gõ ISODD(A2) thì phải sửa lại thành ISODD(QUOTIENT(A2,1)), tương tự cho hàm ISEVEN.
Hiện tại tôi không dùng Excel 2003 nên không nhớ chính xác là trên Excel 2003 có 2 hàm ISODD và ISEVEN không. Nếu không có thì bạn có thể thay 2 công thức trên bởi 2 công thức này:
Mã:=IF(MOD(QUOTIENT(A2,1),2),ROUNDUP(A2,0),ROUNDDOWN(A2,0))
Mã:=ROUNDDOWN(A2,0)+MOD(QUOTIENT(A2,1),2)
Phúc cho hỏi sao không dùng hàm INT mà dùng hàm QUOTIENT (lấy phần nguyên của 1 phép chia)?Trước hết, tôi nhầm một chút ở công thức trên: Thay vì gõ ISODD(A2) thì phải sửa lại thành ISODD(QUOTIENT(A2,1)), tương tự cho hàm ISEVEN.
Hiện tại tôi không dùng Excel 2003 nên không nhớ chính xác là trên Excel 2003 có 2 hàm ISODD và ISEVEN không. Nếu không có thì bạn có thể thay 2 công thức trên bởi 2 công thức này:
Mã:=IF(MOD(QUOTIENT(A2,1),2),ROUNDUP(A2,0),ROUNDDOWN(A2,0))
Mã:=ROUNDDOWN(A2,0)+MOD(QUOTIENT(A2,1),2)
Bạn xem trong file này xem sao. Trong đó tôi có chụp một cái hình mà công thức tính được trên máy tôi (Excel 2010), chứng tỏ rằng công thức có trả về kết quả.Thật là buồn vì mình đã làm theo hướng dẫn của bạn mà vẫn chưa được.
Bạn đổi dấu "," thành dấu chấm phẩy ";" xem sao?Thật là buồn vì mình đã làm theo hướng dẫn của bạn mà vẫn chưa được.
=ROUNDDOWN(A2;0)+MOD(QUOTIENT(A2;1);2)
Hàm INT hay hàm QUOTIENT thì với trường hợp này cũng như nhau thôi mà.Phúc cho hỏi sao không dùng hàm INT mà dùng hàm QUOTIENT (lấy phần nguyên của 1 phép chia)?
Với số 1.5, nếu "chẵn lấy lẻ bỏ" thì đây là số lẻ, vậy phải làm tròn lên 2, sao a.nguoidensau lại cho kết quả là 1?
Office 2003 thì bạn dùng cái này!Còn 2 công thức mà bạn giúp mình không hiểu sao chỉ thấy báo #NAME? , vì mình dùng Office 2003. Bạn xem lại giúp mình, xin cảm ơn bạn.
=FLOOR(ROUNDUP(A2,0),2)
Lạ thật, công thức giống y chang nhau mà 1 file cho kết quả( bài#7), 1 file không(bài#3). Nhưng có 1 điều đặc biệt là khi mình đưa con trỏ về cuối công thức D2 của bạn nghiaphuc và Enter thì lại cho kết quả #NAME? Mình không thể hiểu được tại sao lại như vậy.Bạn xem trong file này xem sao. Trong đó tôi có chụp một cái hình mà công thức tính được trên máy tôi (Excel 2010), chứng tỏ rằng công thức có trả về kết quả.
Bạn đổi dấu "," thành dấu chấm phẩy ";" xem sao?Mã:=ROUNDDOWN(A2;0)+MOD(QUOTIENT(A2;1);2)
Office 2003, bạn phải cài Analysis ToolpakLạ thật, công thức giống y chang nhau mà 1 file cho kết quả( bài#7), 1 file không(bài#3). Nhưng có 1 điều đặc biệt là khi mình đưa con trỏ về cuối công thức D2 của bạn nghiaphuc và Enter thì lại cho kết quả #NAME? Mình không thể hiểu được tại sao lại như vậy.
Sorry vì không đọc mấy bài ở trên. Bạn dùng công thức ở bài #11 điKhông phải do dấu " ;" hay ", " đâu bạn ah
Đúng là công thức của bạn phù hợp với Office 2003, vấn đề của mình đã được giải quyết. Mình xin cảm ơn bạn suu16b, nghiaphuc và những người khác đã quan tâm tới vướng mắc của mình. Xin chào mọi người.Office 2003 thì bạn dùng cái này!Mã:=FLOOR(ROUNDUP(A2,0),2)
Mình xin lỗi các bạn vì sự sơ xuất, lẽ ra 1.5 phải làm tròn là 2.0Hàm INT hay hàm QUOTIENT thì với trường hợp này cũng như nhau thôi mà.
Còn vấn đề thứ 2 mà Thảo thắc mắc thì mình cũng đã thắc mắc ngay tại bài #2 rồi đó, nhưng chưa thấy tác giả phản hồi gì.
Lại có không ổn rồi bạn susu16b và mọi người ơi!Sorry vì không đọc mấy bài ở trên. Bạn dùng công thức ở bài #11 đi
Do file bạn đưa thì 0,5->1, nếu vậy thì bạn thêm vàoLại có không ổn rồi bạn susu16b và mọi người ơi!
Không ổn ở chỗ: Nếu cột A mà có các số từ 0.1 đến 0.99 thì số làm tròn lại là 0. Nói cụ thể là những số nào có đuôi .5 thì mới áp dụng như công thức của bạn suu16, còn những số lớn hơn .5 thì phải tăng lên 1 đơn vị, ví dụ 0.6 , 0.75.......---> làm tròn 1.0 .
=IF(AND(A9>0.5,A9<=1),1,FLOOR(ROUNDUP(A9,0),2))
Do file bạn đưa thì 0,5->1, nếu vậy thì bạn thêm vàoMã:=IF(AND(A9>0.5,A9<=1),1,FLOOR(ROUNDUP(A9,0),2))
Mình xin lỗi các bạn vì sự sơ xuất, lẽ ra 1.5 phải làm tròn là 2.0
Rốt lại là "hổng hiểu"!còn những số lớn hơn .5 thì phải tăng lên 1 đơn vị, ví dụ 0.6 , 0.75.......---> làm tròn 1.0 .
Em xin lỗi thầy Ba tê vì cách diễn đạt của em làm người khác khó hiểu do tính không cận thận của em.Rốt lại là "hổng hiểu"!
Chỉ cần ví dụ rõ như thế này
1.1 --> ?
1.2 --> ?
1.3 --> ?
1.4 --> ?
1.5--> ?
1.6 --> ?
1.7 --> ?
1.8 --> ?
1.9 --> ?
2.0 --> ?
..................
..................
Xong!
Hơn chục bài rồi mà vẫn chưa làm cho người khác hiểu bạn muốn gì.
Tất cả các số này đều làm tròn là 2.Rốt lại là "hổng hiểu"!
Chỉ cần ví dụ rõ như thế này
1.1 --> ?
1.2 --> ?
1.3 --> ?
1.4 --> ?
1.5--> ?
1.6 --> ?
1.7 --> ?
1.8 --> ?
1.9 --> ?
2.0 --> ?
..................
..................
Xong!
Hơn chục bài rồi mà vẫn chưa làm cho người khác hiểu bạn muốn gì.
Bạn thử dùng công thức này xem saoChào mọi người!
Hôm qua khi tôi đưa vấn đề vướng mắc của mình nhờ mọi người giúp và đã nhận được sự giúp đỡ của mọi người. Tuy nhiên vấn đề chưa được giải quyết triệt để. Vì vậy sau khi đọc lại các bài viết và kiểm tra lại, tôi gửi bài lên đây với mong muốn trong File đã ghi rõ.
Xin cảm ơn mọi người
=IF((A2-INT(A2))=0.5,ROUND(A2,0)-MOD(ROUND(A2,0),2),ROUND(A2,0))
Trước tiên là xin lỗi bạn vì không kiểm tra hết, sau là cảm ơn bạn vì công thức chuẩn quá rồi.Bạn thử dùng công thức này xem sao
Ghi chú:PHP:=IF((A2-INT(A2))=0.5,ROUND(A2,0)-MOD(ROUND(A2,0),2),ROUND(A2,0))
phần dữ liệu của bạn A7: 11.5, C7: 11 là không đúng nhé, phải là 12 mới đúng như mô tả của bạn nhé.
Em xin cảm ơn lời khuyên quý báu cùng với Code VBA hay của thầy. Kính chúc thầy và gia đình dồi dào sức khỏe và hạnh phúc.Bạn xem trong file, mình làm UDF
Dữ liệu của bạn vẫn chưa có các số mà hàng thập fân nhỏ hơn 5;
Nếu bạn làm về kỹ thuật, mình khuyên bạn nên thận trọng nhiều hơn nữa trong công việc chuyên môn!
..................
..................
Xong!
Hơn chục bài rồi mà vẫn chưa làm cho người khác hiểu bạn muốn gì.
1. Chủ thớt làm về Ngân Hàng chứ không phải kỹ thuật.Bạn xem trong file, mình làm UDF
Dữ liệu của bạn vẫn chưa có các số mà hàng thập fân nhỏ hơn 5;
Nếu bạn làm về kỹ thuật, mình khuyên bạn nên thận trọng nhiều hơn nữa trong công việc chuyên môn!
Bạn leonguyenz ah, câu cửa miệng là " chẵn lấy lẻ bỏ" như vậy. Nhưng việc làm tròn số tuân thủ theo kiểu những số lẻ mà đằng sau dấu chấm(.) là 5 thì tăng lên 1 đơn vị, còn nếu chẵn thì giữ nguyên. Quy định hơi buồn cười phải không bạn, nhưng vẫn tồn tại mấy chục năm nay.