LỌC DỮ LIỆU

Liên hệ QC

Lê Minh Ngàn

Thành viên chính thức
Tham gia
6/9/17
Bài viết
74
Được thích
2
Giới tính
Nam
Em chào gia đình GPE!
EM CÓ 2 SHEET NHƯ SAU;
1 sheet chứa dữ liệu từ hệ thống bán hàng,một mã bán nhiều lần và chỉ sắp theo ngày trên hệ thống.
Em muốn làm báo cáo như sheet report,anh chị GPE có thể giúp em được không ạ,em chỉ lấy dòng cuối cùng của một mã đó mà thôi.vì dòng đó là tồn cuối cùng em muốn lấy.
Lọc dữ liệu trùng,em sợ lấy không hết và lấy nhầm.Anh chị giúp em.em cảm ơn ạ.Một tháng bán rất nhiều mà không thể lọc thủ công nổi.

Anh chị giúp em với a,em cảm ơn anh chị!.
 

File đính kèm

  • DOI CHIEU KHO THUOC.xlsx
    15 KB · Đọc: 6
Em chào gia đình GPE!
EM CÓ 2 SHEET NHƯ SAU;
1 sheet chứa dữ liệu từ hệ thống bán hàng,một mã bán nhiều lần và chỉ sắp theo ngày trên hệ thống.
Em muốn làm báo cáo như sheet report,anh chị GPE có thể giúp em được không ạ,em chỉ lấy dòng cuối cùng của một mã đó mà thôi.vì dòng đó là tồn cuối cùng em muốn lấy.
Lọc dữ liệu trùng,em sợ lấy không hết và lấy nhầm.Anh chị giúp em.em cảm ơn ạ.Một tháng bán rất nhiều mà không thể lọc thủ công nổi.

Anh chị giúp em với a,em cảm ơn anh chị!.
Phải vậy không bạn???
 

File đính kèm

  • DOI CHIEU KHO THUOC.xlsx
    16.3 KB · Đọc: 21
Phải vậy không bạn???
@huonglien1901 : Tôi có thử dùng công thức này ở dữ liệu khác, nhưng tôi thấy công thức lookup(2,1/(.....)) nó chỉ trả về kết quả ở dòng cuối của ô điều kiện đấy. Vậy bạn cho tôi hỏi một chút là nếu muốn lấy ô đầu tiên thì làm như thế nào được nhỉ?
Cám ơn bạn!
 
@huonglien1901 : Tôi có thử dùng công thức này ở dữ liệu khác, nhưng tôi thấy công thức lookup(2,1/(.....)) nó chỉ trả về kết quả ở dòng cuối của ô điều kiện đấy. Vậy bạn cho tôi hỏi một chút là nếu muốn lấy ô đầu tiên thì làm như thế nào được nhỉ?
Cám ơn bạn!
Bạn xem lại link:
https://www.giaiphapexcel.com/diend...ập-hàng-chân-thành-cám-ơn.123588/#post-773512

Phần: "So sánh với các hàm truy lục khác: "\ INDEX + MATCH

Chúc anh em ngày vui.
/-*+//-*+//-*+/
 
Lần chỉnh sửa cuối:
dạ,em cảm ơn ạ.đúng ý em rồi ạ.Em cảm ơn nhiều ạ!
Chào bạn, Giờ mình có thêm một file bao nhiều mặt hàng và giá từng loại,nhưng trong mỗi hàng đó bao gồm nhiều giá khác nhau,mỗi mặt hàng có thể mua nhiều lần và giá khác nhau.giờ sếp mình kêu mình lọc ra hết từng giá và từng loại ( MỖI LOẠI CÓ BAO NHIEU GIÁ,LỌC RA HẾT).Giúp mình với ạ.Mình cảm ơn nhiều ạ.
 

File đính kèm

  • SEND.xlsx
    10.7 KB · Đọc: 5
Chào bạn, Giờ mình có thêm một file bao nhiều mặt hàng và giá từng loại,nhưng trong mỗi hàng đó bao gồm nhiều giá khác nhau,mỗi mặt hàng có thể mua nhiều lần và giá khác nhau.giờ sếp mình kêu mình lọc ra hết từng giá và từng loại ( MỖI LOẠI CÓ BAO NHIEU GIÁ,LỌC RA HẾT).Giúp mình với ạ.Mình cảm ơn nhiều ạ.
phải vậy không?
 

File đính kèm

  • SEND.xlsx
    14.1 KB · Đọc: 4
Chào bạn, Giờ mình có thêm một file bao nhiều mặt hàng và giá từng loại,nhưng trong mỗi hàng đó bao gồm nhiều giá khác nhau,mỗi mặt hàng có thể mua nhiều lần và giá khác nhau.giờ sếp mình kêu mình lọc ra hết từng giá và từng loại ( MỖI LOẠI CÓ BAO NHIEU GIÁ,LỌC RA HẾT).Giúp mình với ạ.Mình cảm ơn nhiều ạ.
Đây bạn xem gộp luôn cả số lượng vào với nhau.
Mã:
Sub chuyen()
Dim a As Long, br As Long, i As Long, dk As String, d As Long, c As Long, max As Long, bl As Long
Dim arr, arr1
Dim dic As Object
Set dic = CreateObject("scripting.dictionary")
     dic.CompareMode = vbTextCompare
With Sheet1
    br = .Range("B" & Rows.Count).End(xlUp).Row
    If br < 2 Then MsgBox "khong co du lieu": Exit Sub
    arr = .Range("A2:D" & br).Value
    ReDim arr1(1 To UBound(arr, 1), 1 To UBound(arr, 1) + 3)
End With
    For i = 1 To UBound(arr, 1)
        dk = arr(i, 1)
        If dic.exists(dk) = 0 Then
            a = a + 1
            arr1(a, 1) = dk
            arr1(a, 2) = arr(i, 2)
            arr1(a, 3) = arr(i, 3)
            arr1(a, 4) = arr(i, 4)
            dic.Item(dk) = Array(a, 4)
         Else
            c = dic.Item(dk)(0)
            d = dic.Item(dk)(1) + 1
            arr1(c, d) = arr(i, 4)
            arr1(c, 3) = arr1(c, 3) + arr(i, 3)
            If d >= max Then max = d
            dic.Item(dk) = Array(c, d)
         End If
    Next i
With Sheet2
     br = .Range("B" & Rows.Count).End(xlUp).Row
     bl = .UsedRange.Columns.Count
      If br > 1 Then .Range("a2").Resize(br - 1, bl).ClearContents
      If a Then .Range("A2").Resize(a, max).Value = arr1
End With
End Sub
 

File đính kèm

  • SEND.xlsm
    20.8 KB · Đọc: 13
Đây bạn xem gộp luôn cả số lượng vào với nhau.
Mã:
Sub chuyen()
Dim a As Long, br As Long, i As Long, dk As String, d As Long, c As Long, max As Long, bl As Long
Dim arr, arr1
Dim dic As Object
Set dic = CreateObject("scripting.dictionary")
     dic.CompareMode = vbTextCompare
With Sheet1
    br = .Range("B" & Rows.Count).End(xlUp).Row
    If br < 2 Then MsgBox "khong co du lieu": Exit Sub
    arr = .Range("A2:D" & br).Value
    ReDim arr1(1 To UBound(arr, 1), 1 To UBound(arr, 1) + 3)
End With
    For i = 1 To UBound(arr, 1)
        dk = arr(i, 1)
        If dic.exists(dk) = 0 Then
            a = a + 1
            arr1(a, 1) = dk
            arr1(a, 2) = arr(i, 2)
            arr1(a, 3) = arr(i, 3)
            arr1(a, 4) = arr(i, 4)
            dic.Item(dk) = Array(a, 4)
         Else
            c = dic.Item(dk)(0)
            d = dic.Item(dk)(1) + 1
            arr1(c, d) = arr(i, 4)
            arr1(c, 3) = arr1(c, 3) + arr(i, 3)
            If d >= max Then max = d
            dic.Item(dk) = Array(c, d)
         End If
    Next i
With Sheet2
     br = .Range("B" & Rows.Count).End(xlUp).Row
     bl = .UsedRange.Columns.Count
      If br > 1 Then .Range("a2").Resize(br - 1, bl).ClearContents
      If a Then .Range("A2").Resize(a, max).Value = arr1
End With
End Sub
Dạ em cảm ơn Anh / Chị rất nhiều ạ.
 
dạ,em cảm ơn ạ.đúng ý em rồi ạ.Em cảm ơn nhiều ạ!
Chào bạn ,Bạn ơi,về sheet này bạn có thể viết lập trình bằng VBA được k ạ,vì mỗi lần mở file lên,rất nặng mà mỗi lần mình phải trích lọc ra khooảng hơn 3000 dòng...dùng công thức vlookup như bạn vẫn cho ra kết quả đúng mà file của mình thì lại nặng quá..mà mình phải làm liên tục,mỗi lần xem là file cứ chạy rất lâu mới lên được khi thao tác hay save cũng vậy.bạn có cách nào giúp mình không ạ.Mình cảm ơn bạn nhiều.
Phải vậy không bạn???
 
Chào bạn ,Bạn ơi,về sheet này bạn có thể viết lập trình bằng VBA được k ạ,vì mỗi lần mở file lên,rất nặng mà mỗi lần mình phải trích lọc ra khooảng hơn 3000 dòng...dùng công thức vlookup như bạn vẫn cho ra kết quả đúng mà file của mình thì lại nặng quá..mà mình phải làm liên tục,mỗi lần xem là file cứ chạy rất lâu mới lên được khi thao tác hay save cũng vậy.bạn có cách nào giúp mình không ạ.Mình cảm ơn bạn nhiều.
Em vẫn chưa thấy file bạn gửi lại ạ
 
Web KT
Back
Top Bottom