Lối lệnh If rất đơn giản mà không biết tại sao?

Liên hệ QC

hiepnh1985

Thành viên chính thức
Tham gia
31/8/10
Bài viết
76
Được thích
48
Các bác ơi cho em hỏi vấn đề này cái. Em dùng lệnh If với cấu trúc =If(A-B=C,"ok","not ok"). Khi cho A nhận giá trị 10, B nhận giá trị 9-9.6 còn C nhận giá trị từ 0.4-1 thì đều "ok". Nhưng riêng có 2 trường hợp C=0.7, B=9.3 và C=0.8, B=9.2 thì nó cho kết quả "not ok". Em bó tay không hiểu tại sao, mọi người giúp em cái!
Đây là File báo lỗiView attachment Loi lenh If.xls
Dịch vụ nấu cỗ tại nhà Nam An Dịch vụ nấu cỗ tại nhà tại Hà Nội Dịch vụ nấu cỗ tại nhà ở Hà Nội
 
Lần chỉnh sửa cuối:
Tôi nghĩ đó là lỗi của Excel thôi, nó luôn tính số lẽ nào đó rất nhỏ chăng??? Đây là lỗi chỉ xuất hiện trên Excel 2007 (2010 mình chưa thử)
 
không nhỏ bạn à, vì các số 0.4, 0.5, 0.6 còn nhỏ hơn 0.7 và 0.8 nhưng kết quả vẫn ok. Mình đang dùng excel 2003. Có bác nào từng gặp phải chỉ bảo thêm với!
 
Tôi nghĩ đó là lỗi của Excel thôi, nó luôn tính số lẽ nào đó rất nhỏ chăng??? Đây là lỗi chỉ xuất hiện trên Excel 2007 (2010 mình chưa thử)

Mình đang dùng Excel 2003 cũng bị đấy
D12-E12=0,800000000000001
Trong khi đó đã kiểm tra D12=10 và E2=9,2 --> mới lạ nên "Not ok"
D11-E11=0,699999999999999 với D11=10, E11=9,3 ????
 
Lần chỉnh sửa cuối:
Vậy không có cách nào khắc phục à bạn. Mình đang cần xử lý nó gấp!
 
Tạm thời dùng cách đó vậy. Thanks các bạn nhé!
 
http://www.giaiphapexcel.com/forum/...hị-lập-form-truy-tìm-mặt-hàng-trong-kho/page2
Vấn đề em muốn bàn ở đây là sự nguy hiểm (không biết "sai số thực thi tính toá ấy" xảy ra khi nào) trong quá trình áp dụng như hàm IF ở đây chẳng hạn. Nó biết từ "OK" thành "Not OK" ???
E rằng chính bác Bill cũng chẳng biết lúc nào có sai sót đâu. Chúng ta, với tư cách là người dùng thì... làm hoài tự nhiên sẽ quen và cẩn thận thôi
Ec... Ẹc... chẳng có cách nào...
 
E rằng chính bác Bill cũng chẳng biết lúc nào có sai sót đâu. Chúng ta, với tư cách là người dùng thì... làm hoài tự nhiên sẽ quen và cẩn thận thôi
Ec... Ẹc... chẳng có cách nào...

Ái..zà.... Cũng may mà biết được đề mà lường
Chẳng nhẽ đây là "Lỗ hỗng" của một bảng tính thông minh sao ?
 
Ái..zà.... Cũng may mà biết được đề mà lường
Chẳng nhẽ đây là "Lỗ hỗng" của một bảng tính thông minh sao ?
Tôi lấy ví dụ đơn giản thế này:
- Gõ 0.02 vào cell A1 và 0.04 vào cell A2
- Bôi đen A1:A2 và kéo fill đến A47
- Gõ 0.02 vào cell B1
- Gõ vào B2 công thức: =B1+0.02
- Kéo fill công thức tại B2 đến cell B47
- Tại C1, gõ công thức =A1=B1 và kéo fill đến C47
-----------
Lý ra cột C phải là TRUE toàn bộ, vậy mà C47 lại cho giá trị =FALSE? Bôi đen công thức trên thanh Formula tại B47 rồi bấm F9, ta nhìn thấy kết quả =0.940000000000001 (mà lý ra phải là 0.94)
Từ đây có thể rút ra 1 kinh nghiệm: Tính toán qua nhiều trung gian có thể làm cho kết quả cuối cùng sai lệch. Nên tính toán theo giá trí gốc đầu tiên, "bám" vào nó mà tính. Như bài toán trên, nếu B2 ta dùng công thức =$B$1+ROWS($1:1)*0.02 thì sẽ không có vấn đề gì
Đây là 1 trong những kinh nghiệm khi làm việc với Excel
 
Web KT

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

Back
Top Bottom