Diễn đàn giaiphapexcel.com sẽ chuyển sang hoạt động ở link sau

http://www.giaiphapexcel.com/diendan/forums


[CLICK] học VBA ở Đà Nẵng tháng 5/2017


    • Hãy cẩn thận với IFERROR

      Hãy cẩn thận với IFERROR


      IFERROR là một cải tiến từ Excel 2007 trở lên. Với IFERROR, bạn sẽ không cần phải tốn thời gian sử dụng 2 hàm kết hợp là IF và ISERROR như trước. Tuy nhiên, có một thực tế rằng nhiều khi bạn không để ý, việc lạm dụng IFERROR sẽ phản tác dụng ngay và khiến cho bạn gặp nhiều rắc rối.

      Tôi để ý thấy trong rất nhiều trường hợp, mọi người sẽ có xu hướng kèm IFERROR vào trong VLOOKUP vì biết rằng, nếu VLOOKUP tìm không ra, nó sẽ xuất hiện lỗi #N/A. Do đó, dùng IFERROR sẽ giúp cho giá trị của bạn hiện ra, ví dụ như, bằng 0 đối với các giá trị là số. Như vậy sau đó, việc bạn sử dụng SUM với một hàng “Tổng cộng” ở dưới sẽ đơn giản và không bị lỗi.

      Để có thể hình dung rõ ràng hơn, giả sử tôi cần tìm giá trị của một số vật tư dưới đây, và tôi sử dụng liền IFERROR và VLOOKUP để tìm:




      Tuy nhiên thật không may là tôi không để ý đến địa chỉ tham chiếu của bảng, nên khi tôi kéo công thức xuống, tôi sẽ có kết quả như sau:



      Bạn có thể thấy như hình trên, kết quả tôi ra là 0 trong khi thật sự trong bảng tham chiếu thì lại có? Lý do là vì, địa chỉ tham chiếu do không phải tuyệt đối nên khi kéo công thức xuống các ô phía dưới, địa chỉ tham chiếu cũng bị dịch theo và vô tình, nó dịch ra ngoài khỏi giá trị cần tìm kiếm dẫn đến VLOOKUP không thể tìm ra được.



      Tuy nhiên, thay vì ra #N/A thì dưới tác động của IFERROR, kết quả bạn nhận được là giá trị 0. Có lẽ trong ví dụ này, với độ dài và số lượng tìm kiếm ít, bạn sẽ dễ dàng nhận thấy sai lỗi của mình. Nhưng trong quá trình làm việc với rất nhiều dữ liệu kéo dài đến hàng trăm, hàng ngàn, chắc chắn bạn sẽ rất khó phát hiện ra sai lỗi của mình khi nhìn vào số 0 ở trên.

      Vậy nếu bạn nhớ đến việc dùng tham chiếu tuyệt đối rồi, liệu bây giờ có thể sử dụng ngay lập tức IFERROR và VLOOKUP không?

      Để giải đáp cho câu này, tôi muốn gửi bạn một ví dụ khác. Giả sử bạn có dữ liệu như sau:




      Rõ ràng tôi đã dùng tham chiếu tuyệt đối rồi, nhưng kết quả của tôi vẫn là 0. Và khi tôi nhìn lại dữ liệu nguồn của mình, thực tế là dữ liệu nguồn của tôi sai với lỗi #DIV/0! dẫn đến khi dùng IFERROR với VLOOKUP, IFERROR sẽ tự động biến thành số 0.

      Cũng vậy, trong một dữ liệu thật lớn, bạn sẽ yên chí với những số 0. Tuy nhiên, sự thật là dữ liệu của bạn bị lỗi do một bất cẩn nào đó, và bạn cần phải sửa lỗi ngay tại dữ liệu nguồn trước.

      Vậy làm cách nào để khắc phục?

      IFERROR thật sự tốt vì nó giúp bạn tránh khỏi những rắc rối từ lỗi trên bảng tính. Tuy nhiên bởi vì nó quá tiện dụng, quá mạnh mẽ với sức mạnh bao quát hết mọi lỗi, vô tình nó khiến cho bạn gặp rắc rối vì những lỗi bạn không lường trước được. Do vậy, theo tôi, bạn nên tránh sử dụng IFERROR bất cứ khi nào có thể. Bạn nên:

      1/ Trong trường hợp bạn không nắm chắc sẽ gặp lỗi gì, hãy sử dụng công thức đơn thuần, và sau đó lựa chọn bẫy lỗi hoặc khắc phục lỗi tương ứng, chẳng hạn như ví dụ thứ nhất.

      2/ Trong trường hợp bạn thực sự lường trước được lỗi gì sẽ xảy ra, hãy chỉ sử dụng bẫy lỗi đó mà thôi. Với ví dụ thứ hai, nếu bạn biết rằng bạn đã sử dụng tham chiếu tuyệt đối rồi và ngoài trường hợp không tìm thấy giá trị tương ứng, bạn sẽ không gặp bất kỳ lỗi nào khác liên quan đến #N/A, hãy sử dụng IF và ISNA. Nó sẽ giúp bạn trực tiếp tránh lỗi đó. Và khi bạn sử dụng nó, những lỗi như #DIV/0! vẫn sẽ hiện lên nếu có, và bạn sẽ dễ dàng thấy và trực tiếp xử lý như hình dưới đây.

      Bạn có thể tham khảo các hàm IS tại địa chỉ này.




      Chúc bạn thành công.

      Một số bài viết có liên quan:
      1/ 23 điều bổ ích về VLOOKUP có thể bạn muốn biết (phần 1)
      2/ 6 thói quen cá nhân khi làm việc với dữ liệu và Excel
      3/ Chiêu số 23: Bật, tắt chức năng Conditional Formatting bằng 1 checkbox
      4/ 29 cách tiết kiệm thời gian với các công thức Excel (phần 1)
      5/ Sử dụng hàm Subtotal
      6/ [VIDEO] Hướng dẫn cách tạo PivotTable
      7/ [VIDEO] Tạo Timeline trong Excel
      8/ Thủ thuật sử dụng tên ở vùng giao nhau của hai dãy
      9/ Tổng hợp dữ liệu trên nhiều bảng tính
      10/ SUMPRODUCT và Công thức mảng - Phép tính có nhiều điều kiện
      Góp ý 1 Góp ý
      1. willson105's Avatar
        willson105 -
        Mình thấy bạn bị lỗi ở chổ là: vùng dữ liệu để tìm trong hàm vlookup bạn ko F4, nếu bạn F4 thì mình nghĩ công thức đó sẽ là đúng, vì theo thói quen mọi người thường sẽ F4 ở vùng dữ liệu trong vlookup