Dùng công thức lọc dữ liệu thế nào cho nhanh nhất?

Liên hệ QC

ẩn sỹ

Thành viên mới
Tham gia
22/4/09
Bài viết
45
Được thích
8
Các bạn júp mình nhé. Mình có 1 bảng "chi tiết " và cần tổng hợp lại thành một bảng tổng hợp (summary list) , số lượng cần đúng theo size và color (như trong file đính kèm). Hiện mình đang làm thủ công theo cách là lọc dữ liệu theo data filter-> lọc theo từng màu từng cỡ một rồi đánh vào thôi. Như vậy rất lâu. Nhưng ko bết dùng công thức nào nhanh hơn.
Mình có ví dụ kèm trong file đó. Các bạn xem nghiên cứu júp mình nhé.
 

File đính kèm

Mình có 1 bảng "chi tiết " và cần tổng hợp lại thành một bảng tổng hợp (summary list) , số lượng cần đúng theo size và color (như trong file đính kèm). Hiện mình đang làm thủ công theo cách là lọc dữ liệu theo data filter-> lọc theo từng màu từng cỡ một rồi đánh vào thôi. Như vậy rất lâu. Nhưng ko bết dùng công thức nào nhanh hơn.

Bạn có thể dùng Pivotable như file mình đính kèm, trong đó mình đặt 1 Name động dùng offset (Bạn ấn Ctrl+F3) sẽ thấy Name đó.
Dữ liệu sẽ lưu bên sheet [DATA], bạn chỉ việc cập nhật hàng ngày vào các dòng tiếp theo. Khi cần lấy báo cáo, chỉ cần qua sheet [Report], click chuột phải vào report và chọn Refresh Data là xong.

Yêu cầu này dùng công thức vẫn ra, nhưng với dữ liệu nhiều thì file sẽ rất nặng và rất chậm. Dùng Pivottable sẽ hiệu quả hơn và nhanh hơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn có thể sử dụng công thức cho mình được ko? Vì mình chỉ cần 1 bảng như vậy thôi.
 
Bác concogia ơi, trong công thức của Bác,

=IF(ROW(A1)>COUNT(dk),"",INDEX(data,SMALL(dk,ROW(A1))))

dk có nghĩa là gì vậy Bác ?

Cánh Cam
 
Bác concogia ơi.
Em áp dụng theo công thức của Bác để tổng lại list dữ liệu nhưng không hiểu sao có những ô ko thõa điều kiện nên nó bị trống.
Bác xem dùm em sai ở đâu nha.

Thanks Bác nhiều.
Cánh Cam
 

File đính kèm

Bác concogia ơi.
Em áp dụng theo công thức của Bác để tổng lại list dữ liệu nhưng không hiểu sao có những ô ko thõa điều kiện nên nó bị trống.
Bác xem dùm em sai ở đâu nha.

Thanks Bác nhiều.
Cánh Cam
Chẳng sai chỗ nào hết, công thức trên đúng là mình dùng trích lọc dữ liệu duy nhất, nhưng khi áp dụng vào bài của bạn, trong vùng data có nhiều cell trống nên khi làm việc công thức nó sẽ tóm em "trong trắng" để ra kết quả vì "em" đó cũng là dữ liệu duy nhất trong vùng data , trong bài của bạn ẩn sỹ dữ liệu liên tục và ít (quan trọng là bạn ấy muốn giải bằng công thức)
Dữ liệu của bạn có cả đống cell trống và dữ liệu lớn, nếu sử dụng công thức cũng được nhưng sẽ chạy rất chậm, bạn xem trên diễn đàn có rất nhiều bài nói về vấn đề trích lọc duy nhất này. Tạm thời mình đề nghị một cách giải bằng code
Thân
Còn nếu bạn vẫn cứ muốn sử dụng công thức thì name dk bạn sửa lại một tí tẹo
=IF(data="","",IF(MATCH(data,data,0)=ROW(INDIRECT("1:"&ROWS(data))),MATCH(data,data,0),""))
 

File đính kèm

Lần chỉnh sửa cuối:
Dùng công thức DSUM với sự trợ giúp từ VBA, như là 1 tham khảo

PHP:
Option Explicit
Sub DSUMInVBA()
 Dim eRw As Long
 Dim Rng As Range, Clls As Range, Cls As Range
 
 eRw = [E5].End(xlDown).Row
 [E4].Resize(eRw).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[E58], Unique:=True
 Set Rng = [E4].Resize(eRw, 3)
 [ib4].Resize(, 2).Value = [E4].Resize(, 2).Value
 
 For Each Clls In Range([E59], [E65500].End(xlUp))
   [ib5] = Clls.Value
   For Each Cls In Range([f58], [f58].End(xlToRight))
      [ic5].Value = Cls.Value
      With Application.WorksheetFunction
         Cells(Clls.Row, Cls.Column).Value = .DSum(Rng, [G4], [ib4:IC5])
      End With
   Next Cls
 Next Clls
End Sub

1 chú í nho nhỏ: Mình đã bỏ trộn tại 'E57:E58'
 

File đính kèm

Lần chỉnh sửa cuối:
Bác concogia ơi.
Em áp dụng theo công thức của Bác để tổng lại list dữ liệu nhưng không hiểu sao có những ô ko thõa điều kiện nên nó bị trống.
Bác xem dùm em sai ở đâu nha.

Thanks Bác nhiều.
Cánh Cam

Nhanh gọn lẹ & nhiều option bằng Pivot nhé !
 

File đính kèm

Em cảm ơn các Bác.
Pivot đơn giản vậy mà hồi đó giờ em không biết.
Cứ tưởng phức tạp lắm mà em lại dốt nên không dám xài.
Phiền các bác phải suy nghĩ cách sử dụng công thức phức tạp,em sorry nhiều nhiều nha.

Cám ơn các Bác.
 
Web KT

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

Back
Top Bottom