SUBTOTAL nhanh cho các dòng GROUP (1 người xem)

Liên hệ QC

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

Tôi tuân thủ nội quy khi đăng bài

BATHANH200286

Thành viên mới
Tham gia
14/5/14
Bài viết
25
Được thích
15
Công trình gồm nhiều hạng mục
Mỗi hạng mục được nhóm lại với nhau (xem file đính kèm)
Cần hỗ trợ cách SUBTOTAL nhanh cho các nhóm mẹ, nhóm con thay vì làm cho từng nhóm.
Cảm ơn mọi người!
 

File đính kèm

Công trình gồm nhiều hạng mục
Mỗi hạng mục được nhóm lại với nhau (xem file đính kèm)
Cần hỗ trợ cách SUBTOTAL nhanh cho các nhóm mẹ, nhóm con thay vì làm cho từng nhóm.
Cảm ơn mọi người!
Các mục lớn như 1, 2 , 3... để 1 màu. Các mục nhỏ 1.1, 1.2, ... 10.1, 10.2... để 1 màu. Lọc mục này theo màu sau đó copy công thức sau cho vào :
Mã:
H8=SUM(H9:INDEX(H9:H327,IFERROR(MATCH(TRUE,INDEX(E9:E327="",0),0)-1,20)))
HTML:
H7=IF(LEN(B8)=4,SUMPRODUCT((LEFT(B8,2)=LEFT(B8:$B$327,2))*(LEN(B8:$B$327)=4)*(H8:$H$327)),SUMPRODUCT((LEFT(B8,2)=LEFT(B8:$B$327,2))*(LEN(B8:$B$327)=3)*(H8:$H$327)))
Tính tổng ô H328 dùng Sumproduct thay cho Subtotal :
Mã:
=SUMPRODUCT((LEN(B7:B327)=4)*(H7:H327))+SUMPRODUCT((LEN(B7:B327)=3)*(H7:H327))
 

File đính kèm

Công trình gồm nhiều hạng mục
Mỗi hạng mục được nhóm lại với nhau (xem file đính kèm)
Cần hỗ trợ cách SUBTOTAL nhanh cho các nhóm mẹ, nhóm con thay vì làm cho từng nhóm.
Cảm ơn mọi người!
Mã:
H7 =SUBTOTAL(9,H8:INDEX(H8:$H$327,LOOKUP(2,1/(LEFT(B8:$B$327,LEN(B7)+1)=B7&"."),ROW($1:$400))))
Copy xuống . . .
 
Bạn dùng SUMIFS thay cho SUBTOTAL
Tại ô H7 bạn nhập công thức dưới, sau đó copy cho các ô trống còn lại

H7=SUMIFS($H$8:$H$327,$B$8:$B$327,B7&".*")*IF(ISERROR(FIND(".",B7)),0.5,1)
 
Các mục lớn như 1, 2 , 3... để 1 màu. Các mục nhỏ 1.1, 1.2, ... 10.1, 10.2... để 1 màu. Lọc mục này theo màu sau đó copy công thức sau cho vào :
Mã:
H8=SUM(H9:INDEX(H9:H327,IFERROR(MATCH(TRUE,INDEX(E9:E327="",0),0)-1,20)))
HTML:
H7=IF(LEN(B8)=4,SUMPRODUCT((LEFT(B8,2)=LEFT(B8:$B$327,2))*(LEN(B8:$B$327)=4)*(H8:$H$327)),SUMPRODUCT((LEFT(B8,2)=LEFT(B8:$B$327,2))*(LEN(B8:$B$327)=3)*(H8:$H$327)))
Tính tổng ô H328 dùng Sumproduct thay cho Subtotal :
Mã:
=SUMPRODUCT((LEN(B7:B327)=4)*(H7:H327))+SUMPRODUCT((LEN(B7:B327)=3)*(H7:H327))
Mã:
H7 =SUBTOTAL(9,H8:INDEX(H8:$H$327,LOOKUP(2,1/(LEFT(B8:$B$327,LEN(B7)+1)=B7&"."),ROW($1:$400))))
Copy xuống . . .
Cảm ơn 2 anh đã hỗ trợ!
Bài đã được tự động gộp:

Bạn dùng SUMIFS thay cho SUBTOTAL
Tại ô H7 bạn nhập công thức dưới, sau đó copy cho các ô trống còn lại

H7=SUMIFS($H$8:$H$327,$B$8:$B$327,B7&".*")*IF(ISERROR(FIND(".",B7)),0.5,1)
Cảm ơn anh!
mình thích cách của anh HieuCD nhất vì đúng với yêu cầu mình cần!
 
Cảm ơn 2 anh đã hỗ trợ!
Bài đã được tự động gộp:


Cảm ơn anh!
mình thích cách của anh HieuCD nhất vì đúng với yêu cầu mình cần!
Các anh em ở đây giỏi quá, nếu tôi là tác giả thì tôi bê công thức của hoangminhtien vào G7 luôn.

G7=IF(F7<>"",E7*F7,SUMIFS(I8:$I$327,B8:$B$327,B7&".*")*IF(LEN(B7)=1,0.5,1))
 
Các anh em ở đây giỏi quá, nếu tôi là tác giả thì tôi bê công thức của hoangminhtien vào G7 luôn.

G7=IF(F7<>"",E7*F7,SUMIFS(I8:$I$327,B8:$B$327,B7&".*")*IF(LEN(B7)=1,0.5,1))
cái LEN(B7)=1 lúc đầu mình cũng làm, nhưng sau phải chỉnh lại vì khi B7>=10 thì gặp vấn đề.
Nếu dùng 1 công thức duy nhất cho cột G thì tại G7 ta nhập công thức
G7=IF(E7="",SUMPRODUCT($E$8:$E$327*$F$8:$F$327*(LEFT($B$8:$B$327,LEN(B7)+1)=B7&".")),E7*F7)
ở bài của bạn echo07 đang dùng tới SUMIFS của cột I, mà cột I chưa xác định
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom