Tại sao hàm Excel sau lại trả về lỗi? Lỗi chỉ xảy ra khi tham chiếu được trả về lớn hơn 1 ô. Trong công thức, tham chiếu trả về là 1 hàng cao và 2 hàng cao.
=OFFSET($A$2,ROW(G6),0,1,2)
Tại sao hàm Excel sau lại trả về lỗi? Lỗi chỉ xảy ra khi tham chiếu được trả về lớn hơn 1 ô. Trong công thức, tham chiếu trả về là 1 hàng cao và 2 hàng cao.
=OFFSET($A$2,ROW(G6),0,1,2)
Câu trả lời:
Có hai cách khác nhau mà công thức của bạn có thể trả về #VALUE! lỗi ở đây, tùy thuộc vào cách bạn đang cố gắng sử dụng nó:
Đầu tiên, nếu bạn có một công thức trả về một mảng các giá trị thì nó sẽ tạo ra sự khác biệt khi bạn đặt công thức (nếu không phải là "mảng được nhập").
Đặt công thức đó vào A10 (không nhập mảng) và bạn thấy giá trị từ A8, đặt công thức vào B10 và bạn thấy giá trị từ B8, đặt công thức ở đâu đó ngoài cột A và B và bạn nhận được #VALUE! Đó là hành vi tiêu chuẩn trong Excel cho các loại hàm này.
Thứ hai, nếu bạn cố gắng "nhập mảng" công thức trong phạm vi ngang 2 ô để xem cả hai giá trị (như chuff gợi ý), thì bạn cũng nhận được #VALUE! lỗi đó là do chức năng ROW .
Điều đó xảy ra vì ROW () trả về một "mảng" (ngay cả khi đó là một hàng như ở đây) mà một số hàm không xử lý đúng - bạn có thể thấy rằng nếu bạn tô sáng ROW (G6) và nhấn phím F9 - bạn sẽ thấy {6 } chứ không phải 6. Giải pháp là chỉ sử dụng 6 trong công thức hoặc, giả sử bạn muốn tính linh hoạt được cung cấp bởi ROW , bạn có thể bọc trong một chức năng khác, như SUM , ví dụ:
=OFFSET($A$2,SUM(ROW(G6)),0,1,2)
một số chức năng khác sẽ thực hiện công việc tương tự như SUM ở đây, ví dụ MAX , MIN ..... hoặc bạn có thể thay thế ROW bằng ROWS , ví dụ:
=OFFSET($A$2,ROWS(G$1:G6),0,1,2)