Nhờ giúp đỡ lọc không trùng và lấy dữ liệu số lượng mỗi tuần từ các sheet khác nhau

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Dạ em xin nhờ các anh chị trong diễn đàn giúp đỡ ạ, em có data này để phục vụ việc làm luận văn tốt nghiệp, hiện em đã xử lý được tới bước gom hết các file vào thành 1 file nhiều sheet. Em muốn gom dữ liệu theo variant_id toàn bộ các sheet về 1 sheet từ cột product_id đến product_price mà ko bị trùng, sau đó từ từng sheet lấy cột net_quantity nhập về sheet tổng thành 2021_W01, 2021_W02, 2021_W03 .v.v đến hết. Em đã thử dùng advanced filter nhưng nó không cho copy dữ liệu qua sheet khác… và nhất là phần copy net_quantity của từng sheet theo thứ tự xong tự động chèn mới vào cột cuối cùng em hoàn toàn ko biết làm. Em muốn gom để dễ trực quan dữ liệu để làm luận văn do số lượng sản phẩm và sheet (gần 1000 sản phẩm và hơn 100 sheets) rất lớn. Em có đính kèm data thu nhỏ, mong anh chị giúp đỡ, em xin cảm ơn mọi người trước vì đã nhiệt tình và rộng tay giúp đỡ em ạ.

Sheet W01, dòng 6 và 7
Toàn bộ giống nhau, ngoại trừ variant_title
Có coi nó là dupplicate không, hay nó là 2 dòng khác nhau khi chuyển qua sheet Weekly?

dạ nếu anh có thể xem nó thành 2 dòng khác nhau được thì tốt quá ạ

Làm đại.
Theo file đính kèm thì 5 cột kết hợp lại thì không mã nào trùng hết nhé.

Code trong module3

Option Explicit
Sub weekly()
Dim lr&, i&, j&, k&, c&, t&
Dim id As String, rng, res()
Dim dic As Object, ws As Worksheet
Set dic = CreateObject("Scripting.dictionary")
ReDim res(1 To 100000, 1 To Sheets.Count + 5)
c = 6: k = 1
For Each ws In Sheets
If ws.Name <> "sales_Weekly" Then
lr = ws.Cells(Rows.Count, "A").End(xlUp).Row
rng = ws.Range("A2:G" & lr).Value
c = c + 1: res(1, c) = ws.Name
For i = 1 To UBound(rng)
id = rng(i, 2) & "|" & rng(i, 3) & "|" & rng(i, 4) & "|" & rng(i, 5) & "|" & rng(i, 6)
If Not dic.exists(id) Then
k = k + 1
For j = 1 To 6
res(k, j) = rng(i, j)
Next
res(k, c) = rng(i, 7)
Else
For t = 1 To k
If res(t, 2) & "|" & res(t, 3) & "|" & res(t, 4) & "|" & res(t, 5) & "|" & res(t, 6) = id Then
res(t, c) = rng(i, 7)
Exit For
End If
Next
End If
Next
End If
Next
With Sheets("sales_Weekly")
.Range("A1").Resize(k, UBound(res, 2)).Value = res
.Range("A1:F1").Value = Array("product_title", "product_id", "variant_title", "variant_id", "variant_sku", "product_price")
End With
End Sub

www.giaiphapexcel.com/diendan/threads/nh%C6%A1%CC%80-giu%CC%81p-%C4%91%C6%A1%CC%83-lo%CC%A3c-kh%C3%B4ng-tru%CC%80ng-va%CC%80-l%C3%A2%CC%81y-d%C6%B0%CC%83-li%C3%AA%CC%A3u-s%C3%B4%CC%81-l%C6%B0%C6%A1%CC%A3ng-m%C3%B4%CC%83i-tu%C3%A2%CC%80n-t%C6%B0%CC%80-ca%CC%81c-sheet-kha%CC%81c-nhau.163449/

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 0 ▥ 0
Quảng cáo

Bạn nên đọc

Bình luận

Quảng cáo

Cũ vẫn chất

Xem thêm