Bạn cứ hình dung cách hoạt động của OFFSET($A$2,ROW($1:$100),) như sau: Giả sử lọc 60%
- Dòng đầu tiên: SUBTOTAL(3, OFFSET($A$2,ROW($1:$1),) ) = SUBTOTAL(3, Data!A3 ) = 0 (do dòng 3 bị ẩn, vì không thỏa = 60%)
- Dòng kế tiếp: SUBTOTAL(3, OFFSET($A$2,ROW($2:$2),) ) = SUBTOTAL(3, Data!A4 ) = 1 (do dòng 4 đang hiện, vì thỏa = 60%)
- Dòng kế tiếp: SUBTOTAL(3, OFFSET($A$2,ROW($3:$3),) ) = SUBTOTAL(3, Data!A5 ) = 0 (do dòng 5 bị ẩn, vì không thỏa = 60%)
- Dòng kế tiếp: SUBTOTAL(3, OFFSET($A$2,ROW($4:$4),) ) = SUBTOTAL(3, Data!A6 ) = 1 (do dòng 6 đang hiện, vì thỏa = 60%)
- .........Cứ tiếp tục như vậy. (Xem công thức cột B "Tương đương", sheet "Giaithich")
Bạn lưu ý rằng hàm mảng ROW($1:$100) đang nằm ở đối số "Hàng" (Rows), không phải nằm ở đối số "Chiều Dài" (Height) của hàm OFFSET().
(Xem thêm cú pháp của Offset()= OFFSET(reference, rows, cols, [height], [width]) - trích theo: https://support.office.com/vi-vn/article/offset-hàm-offset-c8de19ae-dd79-4b9b-a14e-b4d906d11b66)
Cho nên Offset() nhảy đến
lấy giá trị từng ô một, và Subtotal( 3, "dòng đơn")
chỉ đếm trên từng ô đơn đó, chứ
không đếm toàn bộ cột A.
Thân