• 2 số bằng nhau trừ cho nhau ra kết quả khác 0, nghi vấn bug hàm If Excel
  • 2 số bằng nhau trừ cho nhau ra kết quả khác 0, nghi vấn bug hàm If Excel

    Noname > 14-09-19, 05:18 PM

    Bài này trên group GPE chia sẻ, thấy không có ai giải thích được nên lôi về đây, hy vọng có người tìm ra nguyên nhân.
    Các bạn chú ý dòng 26 và 29 sheet "BANG TH KL DON GIA (PHU LUC 3A) trong file đính kèm.
    D26 -E26 =0
    F26-E26 =0
    Tuy nhiên = If(F26>D26, D26-E26, F26-E26) lại cho kết quả là 0,000000000000000222.

    Có bạn nào giải thích được lý do không?

    https://www.dropbox.com/s/dkftcitambjwxb....xlsx?dl=0
  • RE: 2 số bằng nhau trừ cho nhau ra kết quả khác 0, nghi vấn bug hàm If Excel

    ongke0711 > 14-09-19, 08:11 PM

    Vụ này không phải bug hàm IF của Excel mà là lỗi của Excel trong việc tính toán số thâp phân.
    Cụ thể bài trên cái sai phát sinh từ ô F26, và nguyên nhân ô này sai là từ ô D76 của Sheet "BẢNG DIỄN GIẢI KL". 
    Thấy rối rồi đó.  014

     D76= 1,2949/1000  --> nếu bỏ công thức và gõ thẳng kết quả sẽ không bị sai số.

    Excel chỉ lấy chính xác 15 ký tự để tính toán (tính từ số khác 0) nên từ đó khi 1 kết quả nó chạy qua mấy công thức tính tính sẽ dần dần có sai số ở các số thập phân gần cuối. 
    Bên cạnh đó khi Excel tính toán, nó chuyển đổi số ra dạng nhị phân (Binary number - 0 và 1) sau đó làm tròn khi chuỗi nhị phân của nó quá dài, điều này dẫn đến sai số khi có các số thập phân dài hơn 15 ký tự. Nói chung là về kỹ thuật nhị phân thì nó chuyên sâu quá tôi cũng không biết nhưng cơ chế hoạt động và gây ra lỗi của Excel là vậy.

    Để vượt qua lỗi này thì chỉ còn cách dùng hàm Round() làm tròn số hoặc một cách khác là chỉnh thiết lập trong Excel Option.
    Option -> Advanced -> click chọn "Set precision as displayed" sẽ hết lỗi.
  • RE: 2 số bằng nhau trừ cho nhau ra kết quả khác 0, nghi vấn bug hàm If Excel

    tranthanhan1962 > 14-09-19, 08:31 PM

    Khỏi cần xem luôn, nhờ áp dụng lý thuyết tương đối , khoa học máy tính mới phát triển, 0=0,1, =0,01, =0,001, quá bình thường
  • RE: 2 số bằng nhau trừ cho nhau ra kết quả khác 0, nghi vấn bug hàm If Excel

    Noname > 14-09-19, 09:12 PM

    Nhờ vậy hôm nay em mới biết thêm vụ excel lấy sau chấm động 16 số.
    Thanks anh Ân
  • RE: 2 số bằng nhau trừ cho nhau ra kết quả khác 0, nghi vấn bug hàm If Excel

    tranthanhan1962 > 15-09-19, 06:45 PM

    Trong phép chia sẽ có những kết quả là số thập phân vô hạn (tuần hoàn hoặc không tuần hoàn). Không phải chỉ trong excel mà trong các giải quyết toán học khác trên máy tính luôn chuyển thành một giá trị số sẽ không có một con số 10/3 mà phải là  3,3 hoặc 3,33 ; 3,333333333333.....3333.... Vậy là khái niệm dấu chấm động ra đời (Việt Nam là dấu phẩy động nha các bạn, hồi mình đi học thầy dạy thế). Mà cái này cũng đã có từ trước khi máy tính ra đời luôn vì chẳng có trang giấy nào ghi được số 3,3... với hàng ngàn số 3 phía sau dấu thập phân. Vì vậy người ta chỉ cần viết 10/3 = 3,33E hay √2=1,41E là biết ngay số lẻ qua dài nên không đủ giấy để viết  005 . Còn vụ 3,33E+00 hay 1,41E+00 trên excel thì sau này khi tiếp xúc với máy tính mình mới biết, chắc nó viết theo chuẩn gì đó, Ngoài sự chấp nhận độ chính xác tương đối giá trị số và chấp nhận phương trình sai phân (phương trình không có giá trị chính xác mà chỉ có giá trị tiệm cận chính xác, máy tính sẽ chấp nhận một giá trị chính xác tương đối mặc dù nó vẫn chưa đúng). Đây có thể nói chính là cơ sở để khoa học máy tính phát triển. Vì không chấp nhận một con số cụ thể thì máy tính sẽ không làm toán được.
  • RE: 2 số bằng nhau trừ cho nhau ra kết quả khác 0, nghi vấn bug hàm If Excel

    ledangvan > 16-09-19, 11:24 AM

    (14-09-19, 05:18 PM)Noname Đã viết: Bài này trên group GPE chia sẻ, thấy không có ai giải thích được nên lôi về đây, hy vọng có người tìm ra nguyên nhân.
    Các bạn chú ý dòng 26 và 29 sheet "BANG TH KL DON GIA (PHU LUC 3A) trong file đính kèm.
    D26 -E26 =0
    F26-E26 =0
    Tuy nhiên = If(F26>D26, D26-E26, F26-E26) lại cho kết quả là 0,000000000000000222.

    Có bạn nào giải thích được lý do không?

    https://www.dropbox.com/s/dkftcitambjwxb....xlsx?dl=0


    Cái này là do cái hàm =VLOOKUP(A26,'BẢNG DIỄN GIẢI KL'!$A$24:$H$171,5,0) ở bảng BANGKL nó sai  015 nó hiện như vậy nhưng số của nó không phải như vậy.
    Cách để cho nó về giá trị đúng là vào FILE -> Options -> Avanced - Tìm đến mục (Set Presision as Displayed) tích vào là được  014

    (Giải thích là : Nếu tích như vậy Excel nó sẽ tính giá trị đúng bằng giá trị đang hiển thị và như vậy nó sẽ cắt bỏ mọi thứ không nhìn thấy big green )