PDA

View Full Version : Cách làm tròn số



nguyenmanhhao
30-07-09, 11:42 AM
Xin chào các anh chị trên diễn đàn.
Tôi có một số liệu như thế này:
Cột A: -1.35
Câu hỏi của tôi là: Dùng công thức nào để tính ra được, nếu số sau (sau dấu phẩy) lớn hơn hoặc bằng 3 thì làm tròn thành -2; Còn nếu nhỏ hơn 3 thì làm tròn thành -1.
Vấn để nữa là không chỉ với số -1.35 mà có thể là các số khác như: -1.4;-2.4; -3.2,...(-1.4 làm tròn thành -2; -2.4 làm tròn thành -3; -3.2 làm tròn thành -3)
Rất mong sự giúp đỡ của các anh, chị và các bạn.
Thân

hoangdanh282vn
30-07-09, 12:04 PM
Xin chào các anh chị trên diễn đàn.
Tôi có một số liệu như thế này:
Cột A: -1.35
Câu hỏi của tôi là: Dùng công thức nào để tính ra được, nếu số sau (sau dấu phẩy) lớn hơn hoặc bằng 3 thì làm tròn thành -2; Còn nếu nhỏ hơn 3 thì làm tròn thành -1.
Vấn để nữa là không chỉ với số -1.35 mà có thể là các số khác như: -1.4;-2.4; -3.2,...(-1.4 làm tròn thành -2; -2.4 làm tròn thành -3; -3.2 làm tròn thành -3)
Rất mong sự giúp đỡ của các anh, chị và các bạn.
Thân
Bạn dùng công thức này thử nha :


=IF(ROUNDDOWN(ABS(A1),1)-ROUNDDOWN(ABS(A1),0)>=0.3,ROUNDUP(ABS(A1),0),ROUNDDOWN(ABS(A1),0))

cadafi
30-07-09, 12:10 PM
Bạn dùng công thức này thử nha :


=IF(ROUNDDOWN(ABS(A1),1)-ROUNDDOWN(ABS(A1),0)>=0.3,ROUNDUP(ABS(A1),0),ROUNDDOWN(ABS(A1),0))
Vậy mình dùng công thức này ngắn hơn nè Danh ui!

Dùng cho số âm:


=ROUND(MROUND(A1,-0.3),0)


Dùng cho số dương:

=ROUND(MROUND(A1,0.3),0)


Dùng tổng quát nhất:

=ROUND(MROUND(C2,CHOOSE((C2>0)+1,-0.3,0.3)),0)

hoangdanh282vn
30-07-09, 12:16 PM
Vậy mình dùng công thức này ngắn hơn nè Danh ui!

=ROUND(MROUND(A1,-0.3),0)

Hàm MROUND dùng cho EXCEL 2007, không biết trong excel 2003 có hỗ trợ không anh nhỉ.

nguyenmanhhao
30-07-09, 12:18 PM
Cảm ơn Hoàng Danh, tôi làm được rồi
Thanks

cadafi
30-07-09, 12:18 PM
Hàm MROUND dùng cho EXCEL 2007, không biết trong excel 2003 có hỗ trợ không anh nhỉ.
Mình đang xài Excel 2003 mừ! Trong phần Help cũng có mà!

hoangdanh282vn
30-07-09, 12:23 PM
Mình đang xài Excel 2003 mừ! Trong phần Help cũng có mà!

Chắc excel của em nó bị lỗi rồi. Analys Toolpak hay Analys Toolpak VBA cũng không tìm thấy đâu cả nên nó báo lỗi.

nguyenmanhhao
30-07-09, 12:28 PM
Cảm ơn tất cả các anh (chị) trên diễn đàn
Thanks

cadafi
30-07-09, 01:04 PM
Chắc excel của em nó bị lỗi rồi. Analys Toolpak hay Analys Toolpak VBA cũng không tìm thấy đâu cả nên nó báo lỗi.
Danh xem lại thử xem, nó nằm trong Analysis Toolpak mà!

http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=30378&stc=1&d=1248933783

nguyenmanhhao
31-07-09, 07:40 AM
Bạn Ca_dafi à.
Tôi dùng hàm tổng quát như bạn giúp đỡ nhưng kết quả không ra theo ý muốn.
Chẳng hạn số của tôi là -1.3 khi dùng hàm tổng quát nó không làm tròn thành -2 mà nó lại ra kết quả là -1 (Có nghĩa là nó làm tròn xuống, không phải làm tròn lên theo như bài toán của tôi đưa ra).
Anh giúp đỡ tôi nhé
Thân

hoangdanh282vn
31-07-09, 07:48 AM
Bạn Ca_dafi à.
Tôi dùng hàm tổng quát như bạn giúp đỡ nhưng kết quả không ra theo ý muốn.
Chẳng hạn số của tôi là -1.3 khi dùng hàm tổng quát nó không làm tròn thành -2 mà nó lại ra kết quả là -1 (Có nghĩa là nó làm tròn xuống, không phải làm tròn lên theo như bài toán của tôi đưa ra).
Anh giúp đỡ tôi nhé
Thân

Nó làm tròn lên đấy chứ, -1.3 phải nhỏ hơn -1 chứ nhỉ. Bạn dùng công thức của mình ở trên ấy. Thay số 0.3 thành số khác theo yêu cầu. Nếu muốn làm tròn lên hay xuống thì chỉ cần thay ">=" thành "=<" là ok.

nguyenmanhhao
31-07-09, 08:04 AM
Hoàng Danh à.
Nếu mình sử dụng công thức của bạn mà dùng rounddown và roundup thì không vấn đề gì nhưng nếu sử dụng hàm của bạn Ca_dafi thì không được "Hàm của Ca_dafi là: = ROUND(MROUND(C2,CHOOSE((C2>0)+1,-0.3,0.3)),0)".
Kết quả lại không đúng

huuthang_bd
31-07-09, 08:37 AM
Hoàng Danh à.
Nếu mình sử dụng công thức của bạn mà dùng rounddown và roundup thì không vấn đề gì nhưng nếu sử dụng hàm của bạn Ca_dafi thì không được "Hàm của Ca_dafi là: = ROUND(MROUND(C2,CHOOSE((C2>0)+1,-0.3,0.3)),0)".
Kết quả lại không đúng
Bạn có thể dùng công thức này. Ngắn gọn hơn.

=ROUND(A1+(A1/ABS(A1))*0.2,0)

nguyenmanhhao
31-07-09, 08:55 AM
Cảm ơn anh Thắng nhé
Anh có thể giải thích thêm số 0.2 nhé
Thanks

huuthang_bd
31-07-09, 09:27 AM
Cảm ơn anh Thắng nhé
Anh có thể giải thích thêm số 0.2 nhé
Thanks
Bình thường, hàm ROUND() sẽ dựa vào mốc 5 để làm tròn. Dưới 5 thì làm tròn xuống, từ 5 trở lên thì làm tròn lên. Ví dụ:
Round(1.5,0)=2
Round(2.49,0)=2
Round(3.157,1)=3.2
...
Bây giờ, bạn muốn dưới 3 thì làm tròn xuống, từ 3 trở lên thì làm tròn lên. Vậy để cho phù hợp với hàm ROUND() thì cộng thêm 0.2 vào. Các số có phần thập phân < 0.3 khi cộng thêm 0.2 vào sẽ có phần thập phận < 0.5, hàm ROUND() sẽ làm tròn xuống. Tương tự như thế cho phần ngược lại.

Đoạn A1/ABS(A1)) là để xác định dấu. Nếu số ban đầu là số dương thì A1/ABS(A1)) = 1,tức là cộng thêm 0.2. Ngược lại, nếu số ban đầu là số âm thì A1/ABS(A1)) = -1,tức là trừ bớt 0.2