Gửi bởi
toancvp
Thưa các bác!
Nguy hiểm quá, vì công việc nên em hay dùng countif để tìm xem có bị trùng lắp nội dung hay không. Nhưng em mới phát hiện ra lỗ hổng của hàm này.
Xin lỗi trước nếu như cái phát hiện này quá cũ, nhưng em đã search GG rồi, chỉ có 1 nội dung tương tự, mà ví dụ của bác đó là "định dạng text cột A, A1 là 1/1, A2 là 1/13, countif vùng A1:A2, giá trị A1; kết quả là 2".
Hiện tại em vừa cài office 2013 để xài, và cái ví dụ trên ko bị lỗi.
Phát hiện của em như vầy, A1 là '222222222222222222, A2 là '222222222222222223 (chú ý khác nhau đúng cái đuôi; ở đây đang mặc định giá trị là text); tất nhiên em countif vùng A1:A2, giá trị A1; kết quả là 2. Các phép thử của em như sau:
- =A1=A2, kết quả là False (đúng) [IMG]images/smilies/a18.gif[/IMG]
- =Sumproduct((A1:a2=A1)*1), kết quả =1 (đúng) [IMG]images/smilies/a44.gif[/IMG]
- Lần 3: em chèn thêm ký tự bất kỳ (X chẳng hạn) vào đầu chuỗi A1 và A2; dùng hàm Countif cũ, kết quả là 1 (đúng) [IMG]images/smilies/a08.gif[/IMG]
Như vậy em đưa ra 1 giả thiết, với 1 chuỗi chỉ bao gồm toàn bộ các ký tự số, Countif sẽ biến chuỗi thành số; đồng thời Excel lại chuyển các số quá dài về dạng rút gọn, ở ví dụ của em là 2,22222E+17, nên vô tình cả 2 số, dù khác nhau 1 ít, bị làm tròn về dạng rút gọn như nhau, nên Countif coi là 1 giá trị, trả về kết quả sai. [IMG]images/smilies/a43.gif[/IMG]
Có bác nào có thêm kinh nghiệm vụ này ko, em thực sự là thấy nguy hiểm vì công việc của em xử lý rất nhiều chuỗi, và nó cũng ko phải có quy luật nào, đặc biệt là dài, có số, có chữ, có cả nguyên số. [IMG]images/smilies/a43.gif[/IMG]