Hỏi về Offset + Min + Row trong công thức mảng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

HuyBinhAOF

Thành viên mới
Tham gia
27/12/16
Bài viết
8
Được thích
3
Chào các bác,
Tình hình em đang muốn Countif trong Filter, và lên mạng thì thấy được công thức mảng như sau: (Hàm này ok)
=SUMPRODUCT(SUBTOTAL(3,OFFSET(B3:B31,ROW(B3:B31)-MIN(ROW(B3:B31)),,1)),((B3:B31="mới")*1))
Em có thể hình dung ra Subtotal sẽ tạo ra mảng {0,1..} tương ứng với ô bị Filter, nhưng bác nào giải thích hộ cách thức hoạt động của Combo hàm sau hộ em với.
OFFSET(B3:B31,ROW(B3:B31)-MIN(ROW(B3:B31)),,1)
Và tại sao, khi tạo Name = OFFSET(B3:B31,ROW(B3:B31)-MIN(ROW(B3:B31)),,1)
sau đó thay Name vào công thức Sumproduct ban đầu thì bị lỗi
 

File đính kèm

Chào các bác,
Tình hình em đang muốn Countif trong Filter, và lên mạng thì thấy được công thức mảng như sau: (Hàm này ok)
=SUMPRODUCT(SUBTOTAL(3,OFFSET(B3:B31,ROW(B3:B31)-MIN(ROW(B3:B31)),,1)),((B3:B31="mới")*1))
Em có thể hình dung ra Subtotal sẽ tạo ra mảng {0,1..} tương ứng với ô bị Filter, nhưng bác nào giải thích hộ cách thức hoạt động của Combo hàm sau hộ em với.
OFFSET(B3:B31,ROW(B3:B31)-MIN(ROW(B3:B31)),,1)
Và tại sao, khi tạo Name = OFFSET(B3:B31,ROW(B3:B31)-MIN(ROW(B3:B31)),,1)
sau đó thay Name vào công thức Sumproduct ban đầu thì bị lỗi
1/ Xem ý nghĩa của các công thức trong file.
2/ Tạo Name: BB, công thức =SUMPRODUCT(SUBTOTAL(3,BB)*(B3: B31="mới"))
Với BB=
Mã:
BB=LOOKUP(ROW('Ví Dụ'!1:29),ROW('Ví Dụ'!1:29),OFFSET('Ví Dụ'!$B$3:$B$31,ROW('Ví Dụ'!$B$3:$B$31)-MIN(ROW('Ví Dụ'!$B$3:$B$31)),,1))
Do OFFSET(B3:B31,ROW(B3:B31)-MIN(ROW(B3:B31)),,1) là một Mảng tập họp từ các phần tử riêng biệt ghép lại, cho nên nó phải được chứa trong một hàm có chức năng chứa được tổng các phần tử đó, nó không thể đứng độc lập 1 mình nó trong Name, và chỉ có hàm Lookup( ROW(1:29) , ROW(1:29) , 'Mảng tập họp từ Offset()' ) làm được việc này.​

Thân
 

File đính kèm

Lần chỉnh sửa cuối:
1/ Xem ý nghĩa của các công thức trong file.
2/ Tạo Name: BB, công thức =SUMPRODUCT(SUBTOTAL(3,BB)*(B3: B31="mới"))
Với BB=
Mã:
BB=LOOKUP(ROW('Ví Dụ'!1:29),ROW('Ví Dụ'!1:29),OFFSET('Ví Dụ'!$B$3:$B$31,ROW('Ví Dụ'!$B$3:$B$31)-MIN(ROW('Ví Dụ'!$B$3:$B$31)),,1))
Do OFFSET(B3:B31,ROW(B3:B31)-MIN(ROW(B3:B31)),,1) là một Mảng tập họp từ các phần tử riêng biệt ghép lại, cho nên nó phải được chứa trong một hàm có chức năng chứa được tổng các phần tử đó, nó không thể đứng độc lập 1 mình nó trong Name, và chỉ có hàm Lookup( ROW(1:29) , ROW(1:29) , 'Mảng tập họp từ Offset()' ) làm được việc này.​

Thân

Em đã hiểu được cấu tạo của công thức này rồi,
Thanks anh!
 
Web KT

Bài viết mới nhất

Back
Top Bottom