Tính tổng không bị trùng lặp subtotal không hiển thị

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

zonmaomao

Thành viên mới
Tham gia
8/11/13
Bài viết
34
Được thích
9
Em chào các bác, các anh chị,

Các bác cho e hỏi về cách tính tổng không bị trùng lặp bằng subtotal đã ok,
NHƯNG KHI LỌC THÌ TỔNG KHÔNG ĐƯỢC HIỂN THỊ NỮA, vậy có cách nào không ạ?

Em cảm ơn ạ!


? (subtotal tổng của các subtotal dưới)
1​
1​
BKDLTYGZIIT? (subtotal)
1​
1​
BKDLTYGZIITBX? (subtotal)
2​
2​
HGDGSDFM? (subtotal)
 

File đính kèm

  • subtotal không trùng lặp (2).xlsx
    16.1 KB · Đọc: 19
Subtotal không tính các hàng bị ẩn bằng cách lọc, cái trên chắc sử dụng hàm Aggregate là được
 
Em chào các bác, các anh chị,

Các bác cho e hỏi về cách tính tổng không bị trùng lặp bằng subtotal đã ok,
NHƯNG KHI LỌC THÌ TỔNG KHÔNG ĐƯỢC HIỂN THỊ NỮA, vậy có cách nào không ạ?

Em cảm ơn ạ!


? (subtotal tổng của các subtotal dưới)
1​
1​
BKDLTYGZIIT? (subtotal)
1​
1​
BKDLTYGZIITBX? (subtotal)
2​
2​
HGDGSDFM? (subtotal)
1708511215280.png
Phải vậy không bạn!, Thử thay 109 thành 9 thử xem.
 
View attachment 299135
Phải vậy không bạn!, Thử thay 109 thành 9 thử xem.
9 cũng không được ạ,
khi lọc chỉ STT 1 ở cột 3 thì sẽ không hiển thị tổng ạ

Nếu dùng sum ở các tổng bên dướisubtotal ở tổng trên cùng thì lọc tổng được và đúng
nhưng subtotal trên cùng sẽ tính trùng 2 lần nếu thả lọc, e đang muốn không bị tính trùng 2 lần ạ?

STTkhi đã lọc STT 1 -> tổng ok31.776.000
1​
BKDLTYGZIIT22.676.000
1​
BKDLTYGZIITBX9.100.000
2​
HGDGSDFM1.300.000

và khi thả lọc để bình thường-> tổng trùng 2 lần nên giá trị tăng gấp đôi
STT63.552.000
1​
BKDLTYGZIIT22.676.000
BKDLTYGZIITA18.828.500
BKDLTYGZIITB
BKDLTYGZIITC3.847.500
1​
BKDLTYGZIITBX9.100.000
BKDLTYGZIITBXA6.000.000
BKDLTYGZIITBXH1.800.000
BKDLTYGZIITBXA1.300.000
2​
HGDGSDFM1.300.000
 
9 cũng không được ạ,
khi lọc chỉ STT 1 ở cột 3 thì sẽ không hiển thị tổng ạ

Nếu dùng sum ở các tổng bên dướisubtotal ở tổng trên cùng thì lọc tổng được và đúng
nhưng subtotal trên cùng sẽ tính trùng 2 lần nếu thả lọc, e đang muốn không bị tính trùng 2 lần ạ?

STTkhi đã lọc STT 1 -> tổng ok31.776.000
1​
BKDLTYGZIIT22.676.000
1​
BKDLTYGZIITBX9.100.000
2​
HGDGSDFM1.300.000

và khi thả lọc để bình thường-> tổng trùng 2 lần nên giá trị tăng gấp đôi
STT63.552.000
1​
BKDLTYGZIIT22.676.000
BKDLTYGZIITA18.828.500
BKDLTYGZIITB
BKDLTYGZIITC3.847.500
1​
BKDLTYGZIITBX9.100.000
BKDLTYGZIITBXA6.000.000
BKDLTYGZIITBXH1.800.000
BKDLTYGZIITBXA1.300.000
2​
HGDGSDFM1.300.000
F15=SUMIF(C16:C28,"<>",F16)
F16=SUM(F17:F19)
F20=SUM(F21:F23)
F24=SUM(F25:F27)

Thân
 
F15=SUMIF(C16:C28,"<>",F16)
F16=SUM(F17:F19)
F20=SUM(F21:F23)
F24=SUM(F25:F27)

Thân
Dạ, em cảm ơn Thầy!
thế mà e cứ loay hoay ở =SUBTOTAL(F16:F24;>0;C16:C24) để đặt điều kiện nhưng không được

Công thức của Thầy cho là đúng ạ,

tuy nhiên khi lọc tháng 2 ở cột STT C thì tổng này vẫn "đứng im" không thay đổi

và khi cần lọc mặt hàng A ở cột E thì tổng này vẫn như cũ ạ
dạ có cách đặt điều kiện nào mà khi lọc STT và mặt hàng thì đều cho giá trị đúng không ạ?


không lọc STTlọc A
31.776.000 ?​
1​
BKDLTYGZIIT​
A​
18.828.500​
1​
BKDLTYGZIITBX​
A​
6.000.000​
1​
BKDLTYGZIITBX​
A​
1.300.000​

em cảm ơn Thầy nhiều ạ!
 

File đính kèm

  • subtotal không trùng lặp (2).xlsx
    17.7 KB · Đọc: 4
Lần chỉnh sửa cuối:
Riêng các hàm thì cứ có tên Thầy Phan Thế Hiệp...
Nếu có thương, thì gọi bằng anh, hoặc bạn là được rồi, xin miễn gọi bằng "Thầy", vì tôi không xứng đáng với danh đó đâu. Cảm ơn thiệt nhiều.

Tôi "cao bồi lãng tử" xẹt ngang, xẹt dọc, "chọc gậy bánh xe, chọt cù lét" anh em cho không khí trao đổi học tập vui tươi thôi! Kết anh em, hoặc bè bạn là quý rồi, đôn cao quá dễ "đột quỵ". :)
có cách đặt điều kiện nào mà khi lọc STT và mặt hàng thì đều cho giá trị đúng không ạ?
À! Tại bạn không ghi rõ yêu cầu ngay từ đầu. Vậy phải dùng Subtotal() thôi:
Tại F15, copy:
Mã:
=MAX(MMULT(TRANSPOSE(SUBTOTAL(9,OFFSET(F15,IF(SIGN(C16:C26)={0,1},ROW(1:11),10^6),))),ROW(1:11)^0))
Kết thúc bằng Ctrl+Shift+Enter.

Thân
 

File đính kèm

  • Gpe_subtotal.xlsx
    18.2 KB · Đọc: 8
Nếu có thương, thì gọi bằng anh, hoặc bạn là được rồi, xin miễn gọi bằng "Thầy", vì tôi không xứng đáng với danh đó đâu. Cảm ơn thiệt nhiều.

Tôi "cao bồi lãng tử" xẹt ngang, xẹt dọc, "chọc gậy bánh xe, chọt cù lét" anh em cho không khí trao đổi học tập vui tươi thôi! Kết anh em, hoặc bè bạn là quý rồi, đôn cao quá dễ "đột quỵ". :)

À! Tại bạn không ghi rõ yêu cầu ngay từ đầu. Vậy phải dùng Subtotal() thôi:
Tại F15, copy:
Mã:
=MAX(MMULT(TRANSPOSE(SUBTOTAL(9,OFFSET(F15,IF(SIGN(C16:C26)={0,1},ROW(1:11),10^6),))),ROW(1:11)^0))
Kết thúc bằng Ctrl+Shift+Enter.

Thân
Ôi qua hay, chân thành cám ơn bạn đã cho công thức quá hay quá sâu
 
=MAX(MMULT(TRANSPOSE(SUBTOTAL(9,OFFSET(F15,IF(SIGN(C16:C26)={0,1},ROW(1:11),10^6),))),ROW(1:11)^0))
Dạ em cảm ơn anh!, anh vui tính quá ^^
A có thể cho e hỏi chút là khi thao tác bảng là công thức a cho bị hiển thị lỗi Value là do gì ạ
ROW(1:11) không liên quan gì bảng này sao lại cần đưa vào Công thức ạ

1708652159608.png

Em gà mờ nói thật nhìn công thức của a thì chưa hiểu hết được ngay nhưng e sẽ cố gắng tìm hiểu để áp dụng ạ, có gì không đúng a bỏ qua cho :)

E cảm ơn anh nhiều!
Chúc anh nhiều sức khỏe ạ!
 
Dạ em cảm ơn anh!, anh vui tính quá ^^
A có thể cho e hỏi chút là khi thao tác bảng là công thức a cho bị hiển thị lỗi Value là do gì ạ
ROW(1:11) không liên quan gì bảng này sao lại cần đưa vào Công thức ạ

View attachment 299150

Em gà mờ nói thật nhìn công thức của a thì chưa hiểu hết được ngay nhưng e sẽ cố gắng tìm hiểu để áp dụng ạ, có gì không đúng a bỏ qua cho :)

E cảm ơn anh nhiều!
Chúc anh nhiều sức khỏe ạ!
Đây là công thức mảng; Cop công thức vào bạn thử nhấn ctrl + shift + enter rồi xem kết quả nhé
 
Em gà mờ nói thật nhìn công thức của a thì chưa hiểu hết được ngay nhưng e sẽ cố gắng tìm hiểu để áp dụng ạ, có gì không đúng a bỏ qua cho :)
Nếu bạn muốn tìm hiểu để áp dụng, thì nên tìm hiểu công thức dưới đây sẽ dễ hơn cho bạn:

Tại F15, copy:
Mã:
=MAX(SUM(SUBTOTAL(109,OFFSET(F15,IF(C16:C26>0,ROW(1:11),10^6),))),SUM(SUBTOTAL(109,OFFSET(F15,IF(C16:C26="",ROW(1:11),10^6),))))
Kết thúc bằng Ctrl+Shift+Enter .

Cả hai đều là công thức dùng mảng để tính toán. Tham khảo các công thức tôi phân ra (G30: H45) cho bạn dễ hình dung vấn đề hơn. Bạn cứ thao tác lọc như bạn muốn, rồi xem thử sự biến động của bảng tôi tạo G30: H45.

Dùng Row(1:11) để tạo 1 mảng dọc: từ số 1, đến số 11 nhằm cung cấp số dòng cần nhảy đến tính từ F15. 11 dòng là do dữ liệu của bạn từ dòng 16 đến dòng 26, tức 26-16+1=11. Nếu dữ liệu bạn dài hơn, thì bạn phải tự thay đổi số này, Vd: dữ liệu kéo dài đến dòng cuối là dòng 897 => 897-16+1= 882, bạn chỉnh thành ROW(1:882) trong công thức.

Thân
 

File đính kèm

  • Gpe_subtotal.xlsx
    18.9 KB · Đọc: 6
Nếu bạn muốn tìm hiểu để áp dụng, thì nên tìm hiểu công thức dưới đây sẽ dễ hơn cho bạn:

Tại F15, copy:
Mã:
=MAX(SUM(SUBTOTAL(109,OFFSET(F15,IF(C16:C26>0,ROW(1:11),10^6),))),SUM(SUBTOTAL(109,OFFSET(F15,IF(C16:C26="",ROW(1:11),10^6),))))
Kết thúc bằng Ctrl+Shift+Enter .

Cả hai đều là công thức dùng mảng để tính toán. Tham khảo các công thức tôi phân ra (G30: H45) cho bạn dễ hình dung vấn đề hơn. Bạn cứ thao tác lọc như bạn muốn, rồi xem thử sự biến động của bảng tôi tạo G30: H45.

Dùng Row(1:11) để tạo 1 mảng dọc: từ số 1, đến số 11 nhằm cung cấp số dòng cần nhảy đến tính từ F15. 11 dòng là do dữ liệu của bạn từ dòng 16 đến dòng 26, tức 26-16+1=11. Nếu dữ liệu bạn dài hơn, thì bạn phải tự thay đổi số này, Vd: dữ liệu kéo dài đến dòng cuối là dòng 897 => 897-16+1= 882, bạn chỉnh thành ROW(1:882) trong công thức.

Thân
dạ em cảm ơn anh nhiều ạ!
 
Web KT
Back
Top Bottom