Chào các anh chị em trong diễn đàn Sheet & Excel!
Hôm nay mình muốn chia sẻ một chút kinh nghiệm về lỗi #REF! mà mình vừa gặp phải khi làm việc với hàm INDIRECT. Lỗi này khá khó chịu vì nó báo là tham chiếu không hợp lệ, nhưng đôi khi nguyên nhân không rõ ràng ngay lập tức.
Cụ thể, mình đang dùng INDIRECT để tạo một bảng tính động, cho phép người dùng chọn tên sheet từ một danh sách và nội dung của sheet đó sẽ hiển thị ra. Tuy nhiên, khi mình thay đổi tên sheet hoặc xóa một sheet đi, hàm INDIRECT báo lỗi #REF!.
Sau khi tìm hiểu và thử nghiệm, mình nhận ra một vài nguyên nhân chính và cách khắc phục:
- Nguyên nhân 1: Tên sheet không tồn tại hoặc bị xóa. Hàm
INDIRECTtham chiếu đến tên sheet bằng văn bản. Nếu tên sheet đó không còn tồn tại trong file Excel của bạn, nó sẽ trả về lỗi#REF!. - Cách khắc phục: Đảm bảo rằng tên sheet bạn đang tham chiếu trong hàm
INDIRECTluôn tồn tại. Nếu bạn sử dụng một ô để chứa tên sheet, hãy kiểm tra kỹ ô đó. Một cách hay là sử dụng kiểm tra dữ liệu (Data Validation) để danh sách tên sheet luôn là các sheet có sẵn. - Nguyên nhân 2: Tham chiếu đến một ô/vùng không tồn tại trong sheet được tham chiếu. Đôi khi, bạn tham chiếu đến một ô hoặc một vùng dữ liệu mà sheet đó không có.
- Cách khắc phục: Kiểm tra lại các ô hoặc vùng dữ liệu mà hàm
INDIRECTđang cố gắng truy cập. - Nguyên nhân 3: Sử dụng
INDIRECTvới các file Excel khác không mở. HàmINDIRECTcó thể gặp lỗi nếu nó tham chiếu đến một file Excel khác đang không được mở. - Cách khắc phục: Tốt nhất là mở cả file Excel nguồn trước khi sử dụng hàm
INDIRECTđể tham chiếu đến nó.
Một mẹo nhỏ khi làm việc với INDIRECT là nên kết hợp nó với các hàm kiểm tra lỗi như IFERROR để thông báo thân thiện hơn cho người dùng thay vì chỉ hiển thị #REF!.
Ví dụ:
=IFERROR(INDIRECT(