Hàm bù đắp Excel trả về #VALUE! Lỗi khi kết hợp với chức năng hàng


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) 

Bạn có chắc chắn về chức năng ROW? Vì tôi đã cố gắng sao chép trường hợp của bạn và dường như với tôi rằng ROW-Function không liên quan. Bạn có thể vui lòng thử nó với số 6 thay vì ROW (G6) không . Bạn sẽ nhận được lỗi #VALUE tương tự mà không có chức năng ROW
nixda

Đây là một công thức mảng, do đó, nó cần phải được nhập bằng tổ hợp phím Control-Shift-Enter. Làm như vậy, công thức sử dụng 6 thay vì hàng (g6) sẽ nhận giá trị trong ô A8. Nếu công thức bù được mở rộng sang phải bởi một ô, nó cũng sẽ nhận giá trị trong ô B8. (Để mở rộng công thức sang phải, bạn phải chọn công thức và ô bên phải, nhấn phím F2 và Control-Shift-Enter). Mặt khác, bằng cách sử dụng hàm ROW (g6), sẽ tạo ra giá trị là 6, công thức bù trả về #VALUE! lỗi.
chuff

Câu trả lời:


3

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 đó 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)


Cảm ơn bạn, @barry, tôi đã không nghĩ đến việc sử dụng ROWS theo cách bạn đề xuất, sẽ hoàn thành công việc trong trường hợp cụ thể này.
chuff
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.