Menu

Chia sẻ cách xử lý lỗi #REF! khi dùng hàm gián tiếp (INDIRECT)

Uông Trọng Hằng 10/06/2026 22:19 89 lượt xem 1 trả lời

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 INDIRECT tham 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 INDIRECT luô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 INDIRECT với các file Excel khác không mở. Hàm INDIRECT có 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(
                
5

Mình cũng từng gặp tình huống tương tự với hàm INDIRECT. Đúng là khi thay đổi cấu trúc file Excel (xóa sheet, đổi tên sheet) mà tham chiếu trong INDIRECT không cập nhật kịp thì lỗi #REF! xuất hiện là điều khó tránh khỏi.

Một cách để hạn chế tình trạng này là luôn kiểm tra xem tên sheet hoặc ô tham chiếu mà hàm INDIRECT đang trỏ tới có còn tồn tại hay không trước khi thực hiện thay đổi. Có thể thêm một hàm IF hoặc ISERROR để kiểm tra, nếu không tồn tại thì trả về một giá trị trống hoặc thông báo lỗi thân thiện hơn thay vì #REF!.

Cảm ơn bạn đã chia sẻ kinh nghiệm này nhé!

4

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký