Nhờ các bạn giúp mình lọc dữ liệu nhiều điều kiện

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

thuytrangbp28

Thành viên mới
Tham gia
28/3/18
Bài viết
46
Được thích
5
Giới tính
Nam
Chào các bạn!
Nhờ các bạn giúp mình lọc dữ liệu và tính tổng sản phẩm cùng tên, cùng size như ảnh mô tả bên dưới.
Mình xin cảm ơn !
Capture.PNG
 

File đính kèm

  • LOC TRUNG.xlsx
    10.9 KB · Đọc: 12
Nếu cho xài VBA có sự giúp đỡ của DSUM() thì kết quả ra sẽ trắng trẽo & đẹp như tiên ấy chứ!
Chỉ sợ là Cô/thầy lại quở là trứng đòi khôn hơn vịt thì bỏ xừ đời!
 
Nếu là bài tập thì phải dùng 365 với các hàm mới. Chứ không thì công thức 2021 trở xuống khủng khiếp lắm.
Phải cột phụ thôi.
Bài tập toàn là thế kỷ 20. Nhiều bài Thầy/Cô còn không biết cách tính mã số/ngày tháng trên thực tế. Ở đấy mà MS 365.

Nếu xài công thức thì chỉ phức tạp và rườm rà thôi chứ cũng không khủng khiếp lắm.

Bài này dân chuyên nghiệp chỉ cần 1 cột phụ để tính cỡ (S,M,L,XL) thôi. Có cột phụ ấy rồi thì Pivot Table ra.

Chú thích: bài của ai mà vô duyên tệ. Tự dưng đang sắp lớn xuống nhỏ (L,M,S) rồi xổ toẹt một cái sang XL. Bình thường thì quần áo xếp theo nhỏ đến lớn.
 
Nếu là bài tập thì phải dùng 365 với các hàm mới. Chứ không thì công thức 2021 trở xuống khủng khiếp lắm.
Phải cột phụ thôi.
Mình sài 2019 bạn ạ
Bài tập toàn là thế kỷ 20. Nhiều bài Thầy/Cô còn không biết cách tính mã số/ngày tháng trên thực tế. Ở đấy mà MS 365.

Nếu xài công thức thì chỉ phức tạp và rườm rà thôi chứ cũng không khủng khiếp lắm.

Bài này dân chuyên nghiệp chỉ cần 1 cột phụ để tính cỡ (S,M,L,XL) thôi. Có cột phụ ấy rồi thì Pivot Table ra.

Chú thích: bài của ai mà vô duyên tệ. Tự dưng đang sắp lớn xuống nhỏ (L,M,S) rồi xổ toẹt một cái sang XL. Bình thường thì quần áo xếp theo nhỏ đến lớn.
Cột phụ cũng đc bạn. Bạn biết giúp mình với
 
Lần chỉnh sửa cuối:
Chào các bạn!
Nhờ các bạn giúp mình lọc dữ liệu và tính tổng sản phẩm cùng tên, cùng size như ảnh mô tả bên dưới.
Mình xin cảm ơn !
Nếu dùng VBA thì có thể Tham khảo code củ chuối sau:
Mã:
Option Explicit

Sub ThuyTrang()
Dim i&, j&, Lr&, t&, k&
Dim Arr(), KQ(), S
Dim Dic As Object, Key
Dim Ma, Si As String
Set Dic = CreateObject("Scripting.Dictionary")

With Sheet1
Lr = .Range("A100000").End(3).Row
Arr = .Range("A3:C" & Lr).Value
ReDim KQ(1 To UBound(Arr), 1 To 6)
For i = 1 To UBound(Arr)
    S = Split(Arr(i, 1), ".")
    Ma = Mid(Arr(i, 2), 1, 11)
    Si = Mid(Arr(i, 2), 13, Len(Arr(i, 2)) - 12)
    If Si = "L" Then
        k = 3
    ElseIf Si = "M" Then
        k = 4
    ElseIf Si = "S" Then
        k = 5
    ElseIf Si = "XL" Then
        k = 6
    End If
    Key = S(0) & "#" & Ma
    
    If Not Dic.Exists(Key) Then
        t = t + 1: Dic.Add (Key), t
        KQ(t, 1) = S(0)
        KQ(t, 2) = Ma
        KQ(t, k) = Arr(i, 3)
    Else
        j = Dic.Item(Key)
        KQ(j, k) = KQ(j, k) + Arr(i, 3)
    End If
Next i
If t then 
       .Range("E4").Resize(1000, 6).Clearcontents
       .Range("E4").Resize(t, 6) = KQ
end if
Set Dic = Nothing
End With
Msgbox " Done"
End Sub
 
Nếu dùng VBA thì có thể Tham khảo code củ chuối sau:
Mã:
Option Explicit

Sub ThuyTrang()
Dim i&, j&, Lr&, t&, k&
Dim Arr(), KQ(), S
Dim Dic As Object, Key
Dim Ma, Si As String
Set Dic = CreateObject("Scripting.Dictionary")

With Sheet1
Lr = .Range("A100000").End(3).Row
Arr = .Range("A3:C" & Lr).Value
ReDim KQ(1 To UBound(Arr), 1 To 6)
For i = 1 To UBound(Arr)
    S = Split(Arr(i, 1), ".")
    Ma = Mid(Arr(i, 2), 1, 11)
    Si = Mid(Arr(i, 2), 13, Len(Arr(i, 2)) - 12)
    If Si = "L" Then
        k = 3
    ElseIf Si = "M" Then
        k = 4
    ElseIf Si = "S" Then
        k = 5
    ElseIf Si = "XL" Then
        k = 6
    End If
    Key = S(0) & "#" & Ma
   
    If Not Dic.Exists(Key) Then
        t = t + 1: Dic.Add (Key), t
        KQ(t, 1) = S(0)
        KQ(t, 2) = Ma
        KQ(t, k) = Arr(i, 3)
    Else
        j = Dic.Item(Key)
        KQ(j, k) = KQ(j, k) + Arr(i, 3)
    End If
Next i
If t then
       .Range("E4").Resize(1000, 6).Clearcontents
       .Range("E4").Resize(t, 6) = KQ
end if
Set Dic = Nothing
End With
Msgbox " Done"
End Sub
Cảm ơn bạn rất nhiều
 
Web KT
Back
Top Bottom