Nhờ mọi người giúp code sum và xóa các giá trị trùng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

babyheomoi

Thành viên thường trực
Tham gia
22/9/13
Bài viết
395
Được thích
91
Em có bài tưởng đơn giản nhưng trình độ có hạn nghĩ mãi ko ra, nhờ các cao thủ giúp!
Em có 2 file dữ liệu, 1 cái là tổng hợp dskh duy nhất theo mã KH, 1 cái là giá trị mua hàng của kh!

Em muốn file tổng hợp khi marco sẽ tự động add các dskh theo mã số Kh cố định từ file data ra, do mskh là duy nhất nên em muốn xử lý là sum các giá trị dskh trùng lại, và sau khi sum sẽ xóa lun các dòng dữ liệu trùng!
File mẫu e gửi đính kèm!
Mọi người giúp em nha!
Thanks
 

File đính kèm

Dùng Pivot Table là thỏa mãn sắp xếp dữ liệu và cộng tổng, loại bỏ trùng. Cần chi code co kiếc
 
Upvote 0
Em có bài tưởng đơn giản nhưng trình độ có hạn nghĩ mãi ko ra, nhờ các cao thủ giúp!
Em có 2 file dữ liệu, 1 cái là tổng hợp dskh duy nhất theo mã KH, 1 cái là giá trị mua hàng của kh!

Em muốn file tổng hợp khi marco sẽ tự động add các dskh theo mã số Kh cố định từ file data ra, do mskh là duy nhất nên em muốn xử lý là sum các giá trị dskh trùng lại, và sau khi sum sẽ xóa lun các dòng dữ liệu trùng!
File mẫu e gửi đính kèm!
Mọi người giúp em nha!
Thanks


Dùng consolidate trong excel bạn nhé
https://www.youtube.com/watch?v=B32X9ESYL3c
 
Upvote 0
Em có bài tưởng đơn giản nhưng trình độ có hạn nghĩ mãi ko ra, nhờ các cao thủ giúp!
Em có 2 file dữ liệu, 1 cái là tổng hợp dskh duy nhất theo mã KH, 1 cái là giá trị mua hàng của kh!

Em muốn file tổng hợp khi marco sẽ tự động add các dskh theo mã số Kh cố định từ file data ra, do mskh là duy nhất nên em muốn xử lý là sum các giá trị dskh trùng lại, và sau khi sum sẽ xóa lun các dòng dữ liệu trùng!
File mẫu e gửi đính kèm!
Mọi người giúp em nha!
Thanks
Bạn dùng công cụ Consolidate sẵn có. Cách làm như sau:
- Chọn 1 Cell trống bất kỳ, ví dụ Cell (R2C11-như trong File của bạn)
- Vào Data \Consolidate..
Tại cửa sổ
Function: Chọn Sum
Reference: Sheet1!R1C1:R11C2
- Tich vào Top rowLeft Column, nháy vào OK.
- Quét chọn vùng dữ liệu vừa tạo ----> Sort Ascending sẽ được kết quả như ý.
Bạn xem File
 

File đính kèm

Upvote 0
Bạn muốn dùng Code thì có Code đây:
PHP:
Sub abc()
    Dim Dic As Object, Arr, dArr, Tmp As String
    Dim i As Long, j As Long, k As Long
    Sheet1.Range("G10").Resize(10000, 2).ClearContents
    Arr = Range(Sheet1.[A2], Sheet1.[A65000].End(3)).Resize(, 2)
    ReDim dArr(1 To UBound(Arr, 1), 1 To UBound(Arr, 1))
    Set Dic = CreateObject("Scripting.Dictionary")
    With Dic
        For i = 1 To UBound(Arr, 1)
            Tmp = Arr(i, 1)
            If Not .Exists(Tmp) Then
                k = k + 1
                .Add Tmp, k
                For j = 1 To UBound(Arr, 2)
                    dArr(k, j) = Arr(i, j)
                Next j
            Else
                dArr(.Item(Tmp), 2) = dArr(.Item(Tmp), 2) + Arr(i, 2)
            End If
        Next i
    End With
    With Sheet1
        .Range("G10").Resize(k, UBound(Arr, 1)) = dArr
        .Range("G10:H1000").Sort .Cells(10, 7), xlAscending, Header:=xlYes
    End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Thanks mấy bác đã giúp.
e ko rành về dic lắm nên đọc chưa hiểu code lắm để áp dụng vào data mình.
trc hết nhờ mấy bác diễn giải ý nghĩa tưng dòng dc ko? Thứ 2 ai có link để học về dic từ đầu cho e tham khảo.
em cám ơn
 
Upvote 0
Thanks mấy bác đã giúp.
e ko rành về dic lắm nên đọc chưa hiểu code lắm để áp dụng vào data mình.
trc hết nhờ mấy bác diễn giải ý nghĩa tưng dòng dc ko? Thứ 2 ai có link để học về dic từ đầu cho e tham khảo.
em cám ơn

Diễn giải từng dòng thì không làm được.
Link thì bạn chỉ cần gõ vào ô tìm kiếm từ khoá Dictionay thì sẽ có rất nhiều bài cho bạn.
Đây là 1 link:
http://www.giaiphapexcel.com/forum/...n-về-Scripting-Dictionary&p=374487#post374487
 
Upvote 0

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

Back
Top Bottom