SUBTOTAL nhanh cho các dòng GROUP

Liên hệ QC
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
21
Đượ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

  • SUBTOTAL nhanh cho các dòng GROUP.xlsx
    40 KB · Đọc: 22
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

  • SUBTOTAL nhanh cho các dòng GROUP.xlsx
    48.6 KB · Đọc: 11
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
Back
Top Bottom