Làm tròn số nguyên trong Excel (3 người xem)

Liên hệ QC

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

tihonvd

Thành viên mới
Tham gia
11/1/10
Bài viết
7
Được thích
1
Xin chào các Anh/Chị,
Mình đang tính công thức để xác định lượng hàng khuyến mãi cho khách hàng khi mua sản phẩm:
Với lượng mua sản phẩm mức 1 là 4.8 sẽ được quà mức 1 là 7;
Với lượng mua sản phẩm mức 2 là 9.6 sẽ được quà mức 2; là 18;
Khi áp dụng công thức tính làm tròn số thì xảy ra lỗi khi giá trị tính toán có kết hợp hàm Int().

Tính toán thông thường sẽ cho ra kết quả là 1, tuy nhiên giá trị tính trên Excel thì cho ra kết quả là:
0.999999999999999 dẫn đến sử dụng hàm int() cho ra kết quả bằng 0.

Anh/Chị nào biết cách xử lý trường hợp này vui lòng giúp đỡ, xin cảm ơn nhiều.
 

File đính kèm

Xin chào các Anh/Chị,
Mình đang tính công thức để xác định lượng hàng khuyến mãi cho khách hàng khi mua sản phẩm:
Với lượng mua sản phẩm mức 1 là 4.8 sẽ được quà mức 1 là 7;
Với lượng mua sản phẩm mức 2 là 9.6 sẽ được quà mức 2; là 18;
Khi áp dụng công thức tính làm tròn số thì xảy ra lỗi khi giá trị tính toán có kết hợp hàm Int().

Tính toán thông thường sẽ cho ra kết quả là 1, tuy nhiên giá trị tính trên Excel thì cho ra kết quả là:
0.999999999999999 dẫn đến sử dụng hàm int() cho ra kết quả bằng 0.

Anh/Chị nào biết cách xử lý trường hợp này vui lòng giúp đỡ, xin cảm ơn nhiều.
Bạn xài hàm ROUND nhé:
=ROUND(0.999999999999999,0)
 
Xin chào các Anh/Chị,
Mình đang tính công thức để xác định lượng hàng khuyến mãi cho khách hàng khi mua sản phẩm:
Với lượng mua sản phẩm mức 1 là 4.8 sẽ được quà mức 1 là 7;
Với lượng mua sản phẩm mức 2 là 9.6 sẽ được quà mức 2; là 18;
Khi áp dụng công thức tính làm tròn số thì xảy ra lỗi khi giá trị tính toán có kết hợp hàm Int().

Tính toán thông thường sẽ cho ra kết quả là 1, tuy nhiên giá trị tính trên Excel thì cho ra kết quả là:
0.999999999999999 dẫn đến sử dụng hàm int() cho ra kết quả bằng 0.

Anh/Chị nào biết cách xử lý trường hợp này vui lòng giúp đỡ, xin cảm ơn nhiều.
Bạn đã thử chưa:
=ROUND((B3-D3*I3)/C3,0)
 
Cảm ơn các anh chị đã góp ý, nhưng nếu mình dùng hàm round thì khi tính lượng quà được hưởng nếu kết quả sẽ không chính xác. Ví dụ:
Gói quà mức 2: =Round(52.8/9.6,0) = 6 (làm tròn lên sẽ bị sai, kết quả phải là 5). do đó, nếu áp dụng hàm rounddown() hay int() thì khi tính đến Gói quà mức 1 sẽ trả về kết quả 0.999999999999999 thay vì 1.
 
Cảm ơn các anh chị đã góp ý, nhưng nếu mình dùng hàm round thì khi tính lượng quà được hưởng nếu kết quả sẽ không chính xác. Ví dụ:
Gói quà mức 2: =Round(52.8/9.6,0) = 6 (làm tròn lên sẽ bị sai, kết quả phải là 5). do đó, nếu áp dụng hàm rounddown() hay int() thì khi tính đến Gói quà mức 1 sẽ trả về kết quả 0.999999999999999 thay vì 1.
Thay cái ,0 = ,6 7 gì đó rồi lồng int vào
như là int(round(....,6))
 
Cảm ơn các anh chị đã góp ý, nhưng nếu mình dùng hàm round thì khi tính lượng quà được hưởng nếu kết quả sẽ không chính xác. Ví dụ:
Gói quà mức 2: =Round(52.8/9.6,0) = 6 (làm tròn lên sẽ bị sai, kết quả phải là 5). do đó, nếu áp dụng hàm rounddown() hay int() thì khi tính đến Gói quà mức 1 sẽ trả về kết quả 0.999999999999999 thay vì 1.
Thử:
=ROUND(52.8/9.6-10^-10,0)
=ROUND((B4-D4*I4)/C4-10^-10,0)
Xem sao nhen! hihi ^o^
 
Cảm ơn các anh chị đã góp ý, nhưng nếu mình dùng hàm round thì khi tính lượng quà được hưởng nếu kết quả sẽ không chính xác. Ví dụ:
Gói quà mức 2: =Round(52.8/9.6,0) = 6 (làm tròn lên sẽ bị sai, kết quả phải là 5). do đó, nếu áp dụng hàm rounddown() hay int() thì khi tính đến Gói quà mức 1 sẽ trả về kết quả 0.999999999999999 thay vì 1.
Công thức mức 2 như cũ
Mã:
 G3 =ROUND(B3-D3*I3,1)/C3
hay
Mã:
G3 =--((B3-D3*I3)=C3)
 
Đã công thức làm tròn thì phải chấp nhận sai số.
Nếu muốn Rounddown 0,9999 mà thành 1 thì cộng cho nó một sai số. Điển hình ở đây, cứ cộng mọi con toán cho 0,001 trước khi Rounddown
 
Đã công thức làm tròn thì phải chấp nhận sai số.
Nếu muốn Rounddown 0,9999 mà thành 1 thì cộng cho nó một sai số. Điển hình ở đây, cứ cộng mọi con toán cho 0,001 trước khi Rounddown
Xin chân thành cảm ơn tất cả các Anh/Chị rất nhiều!
Cảm ơn anh VetMini, em áp dụng các của anh có lẽ là phù hợp nhất. Đây là lần đầu tiên em gặp phải một trường hợp khá đặc biệt như vậy đối với các hàm làm tròn, như vậy cho thấy trong tính toán, việc sai sót dù là 0.00000000001 cũng ảnh hưởng đến toàn bộ kết quả.
Một lần nữa xin cảm ơn các Anh/Chị!
 
Web KT

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

Back
Top Bottom