Trích xuất dữ liệu trùng nhau sang sheet mới

Liên hệ QC

saleslogistics68

Thành viên mới
Tham gia
14/3/14
Bài viết
28
Được thích
1
Em là thành viên mới nhờ anh em giúp đỡ. Hiện tại e có một file dữ liêuh ( đã đính kèm. Em muốn trích lọc dữ liệu sang sheet mới. Chỉ cần đánh tên nhân viên ví dụ Trọng thì tất cả dữ liệu của Trọng trong sheet 1 sẽ chuyển sang sheet 2. Em muốn chuyển dữ liệu để tính %. Nên không thể dùng auto filter. Em xin cảm ơn nhiều
 

File đính kèm

Em là thành viên mới nhờ anh em giúp đỡ. Hiện tại e có một file dữ liêuh ( đã đính kèm. Em muốn trích lọc dữ liệu sang sheet mới. Chỉ cần đánh tên nhân viên ví dụ Trọng thì tất cả dữ liệu của Trọng trong sheet 1 sẽ chuyển sang sheet 2. Em muốn chuyển dữ liệu để tính %. Nên không thể dùng auto filter. Em xin cảm ơn nhiều

1/ Bạn sử dụng Advanced Filter như sau:
- Mở sheet2: Copy A1:A2 của sheet1 sang B1:B2 sheet2, Copy các tiêu đề cột cần lọc sang sheet2
- Chọn Advanced Filter, click chọn vào nút Copy to another location, nhập vào khung trống các địa chỉ như trong hình.
- Bấm OK
Adv.jpg
2/ Dùng Record Macro ghi lại công việc bạn vừa làm, gán vào sự kiện Worksheet_Change, mỗi khi thay đổi ô B2 là Macro làm việc thay bạn như trong File đình kèm. (Khi mở file nhớ chọn Enable Macros, khi lưu file nhớ chọn đuôi .xlsm)
 

File đính kèm

Lần chỉnh sửa cuối:
Thêm giải pháp bằng công thức, Ctrl+F3 để xem Name trong file đính kèm.
 

File đính kèm

Dạ Em chân thành cảm ơn Anh/Chị đã giúp đỡ. Mấy bác có thể giúp em thêm nếu như file của em trong Sheet 1 có thêm 2 cột nữa thì bên Sheet 2 cũng lọc ra theo. Vậy marco phải sửa như thế nào ạ ??? Có thể chỉnh sửa thủ công không? Em chân thành cảm ơn.
 

File đính kèm

Dạ Em chân thành cảm ơn Anh/Chị đã giúp đỡ. Mấy bác có thể giúp em thêm nếu như file của em trong Sheet 1 có thêm 2 cột nữa thì bên Sheet 2 cũng lọc ra theo. Vậy marco phải sửa như thế nào ạ ??? Có thể chỉnh sửa thủ công không? Em chân thành cảm ơn.

1/ Copy G1:H1 của sheet1 sang F3:G3 sheet2
2/ Sub cũ trong Module thay bằng Sub này:
Xem sự thay đổi trong Sub này so với Sub cũ mà nghiệm ra ý nghĩa của nó nhé.
PHP:
Sub GPE()
Dim Rng As Range
Range("A4:G100").Clear
Set Rng = Sheet1.Range(Sheet1.Range("A1"), Sheet1.Range("A1").End(xlDown)).Resize(, 8)
Rng.AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Range("B1:B2"), CopyToRange:=Range("A3:G3")
Set Rng = Nothing
End Sub
 
Hướng dẫn cụ thể bước 2 được không anh Ba Tê ơi
 
Cảm ơn Anh Ba Tê. Mặc dù e tự record chưa được nhưng để thay đổi thủ công lọc thêm cột e đã làm được. Em cảm ơn Anh rất là nhiều !!!
 
Gởi Anh Ba Tê, File của em em tự chỉnh sửa và lọc rất oke. Cảm ơn anh hướng dẫn tận tình mặc dù em phải dùng Sub của anh chứ chưa record được. Anh cho e hỏi thêm, ở sheet 2 có cột tổng Doanh Thu, em muốn khi search tên Nhân viên thì tổng doanh thu sẽ được cộng theo từng nhân viên tương ứng, được không anh ??? Vì khì e làm hàm Sum cho Nhân viên Khánh thì ra, khi search Trọng thì nó lại mất. Em cảm ơn anh nhiều !!! Xin lỗi đã làm phiền anh hihi
 

File đính kèm

Dạ Em cảm ơn anh chị rất là nhiều. Em có thêm một vấn đề nữa, nếu như trong sheet 1 file đính kèm. Em muốn cứ gặp nhân viên Trọng ở cột A, thì tổng số ở cột G sẽ bằng ở cột F cộng lại của mỗi nhân viên Trọng mà thôi. VBA có thể làm được việc này khộng ạ ? Em cảm ơn rất nhiều !!!
 

File đính kèm

Dạ Em cảm ơn anh chị rất là nhiều. Em có thêm một vấn đề nữa, nếu như trong sheet 1 file đính kèm. Em muốn cứ gặp nhân viên Trọng ở cột A, thì tổng số ở cột G sẽ bằng ở cột F cộng lại của mỗi nhân viên Trọng mà thôi. VBA có thể làm được việc này khộng ạ ? Em cảm ơn rất nhiều !!!
Có khi bạn chỉ cần Dic thuần túy nhẩy?
PHP:
Sub Cong_don()
Dim Sarr, Darr, i As Long, k  As Long, Tmp As String, R
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
    Sarr = .Range(.[A2], .[A10000].End(xlUp)).Resize(, 6).Value2
End With
ReDim Darr(1 To UBound(Sarr, 1), 1 To 1)
    For i = 1 To UBound(Sarr, 1)
        Tmp = Sarr(i, 1)
        If Len(Tmp) Then
            If Sarr(i, 1) = [I1] Then
                If Not Dic.exists(Tmp) Then
                    k = k + 1
                    Dic.Add Tmp, k
                    Darr(k, 1) = Sarr(i, 6)
                Else
                    R = Dic.Item(Tmp)
                    Darr(R, 1) = Darr(R, 1) + Sarr(i, 6)
                End If
            End If
        End If
    Next i
With Sheet1
        .[G2:G10000].ClearContents
        If k Then
            .[G2].Resize(k).NumberFormat = "#,##0"
            .[G2].Resize(k).Value = Darr
        End If
End With
Set Dic = Nothing
End Sub
 

File đính kèm

Em cảm ơn bác hbkphuong và bác comet_1701Em chạy file bác hbkphuong rất oke tiếc là nó ko lưu lại được. Em giả sử có thêm cột % bên cạnh cột tổng số dựa trên số tổng của từng nhân viên để tính % được không ạ ???
File của bác comet_1701 em chạy trên file e gởi rất oke, nhưng em copy vào file gốc chỉnh sửa một số cột chút xíu nhưng nó không chạy hay báo bất kỳ lỗi gì hết :(.
 
Dạ. Hay quá. Em làm được rồi hihi. Nhưng mà nếu em kích nhầm 1 người 2 lần thì nó vẫn hiện ra. có cách nào đối với dữ liệu trùng lặp thì nó không hiện giá trị được không ạ? Em cảm ơn bác hpkphuong nhiều ạ !!!
 
Dạ. Em chỉ cần cột tổng chỉ hiện một lần đối với nhân viên Trọng ( không hiện lại dữ liệu trùng lặp ). Em cảm ơn nhiều ạ !!!
 
Code cho ý đỏ. Bạn format cột H là % để thấy
Mã:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cll As Range, Clls As Range, lr As Long
lr = [A65000].End(3).Row
'Range("G2:G" & lr).ClearContents
Range("G2:H" & lr).Interior.ColorIndex = 0
    If Not Intersect(Target, Range("A2:A" & lr)) Is Nothing Then
        For Each Cll In Target
            Cll.Offset(, 6).Value = Application.SumIf(Range("A2:A" & lr), Cll.Value, Range("F2:F" & lr))
            Cll.Offset(, 7).Value = Cll.Offset(, 5).Value / Cll.Offset(, 6).Value
            Cll.Offset(, 6).Resize(, 2).Interior.ColorIndex = 6
        Next Cll
    End If
End Sub

Bạn siêng thiệt, theo "trên từng cây số" luôn. Đến cây số 16, và còn cây số 17 nữa kìa.
Có thêm vấn đề nữa...
Giả sử có thêm....
Nhưng mà nếu....
Úi da! xem lại là đến cây số 18 rồi.
 
Lần chỉnh sửa cuối:
Tới cây 18 rồi anh. Chắc đến đây dừng được rồi.... Mới học code được có mấy dòng đó thôi anh Ba ơi|||||||||||||||

Chưa xong đâu. Từ bài đầu đã có ý muốn trích lọc để tính phần trăm, nhưng không nói rõ cách tính, không có mẫu kết quả rõ ràng, đến giờ này tôi nghĩ vẫn chưa đúng cái cột %.
Tôi gặp mấy cái "nếu như, ví dụ..." là chạy. Ai mà biết kết quả thực muốn có ra sao, thà dự trù sẵn bảng kết quả mẫu có bi nhiêu cột, "quất 1 phát" là xong.
 
Chưa xong đâu. Từ bài đầu đã có ý muốn trích lọc để tính phần trăm, nhưng không nói rõ cách tính, không có mẫu kết quả rõ ràng, đến giờ này tôi nghĩ vẫn chưa đúng cái cột %.
Tôi gặp mấy cái "nếu như, ví dụ..." là chạy. Ai mà biết kết quả thực muốn có ra sao, thà dự trù sẵn bảng kết quả mẫu có bi nhiêu cột, "quất 1 phát" là xong.

Dạ. Thực tế đưa file a làm 1 cái là xong nhưng mà nhờ như vậy e nắm thêm đươcj dòng code và áp dung. E đọc code mấy bác viết e hiểu được nhiều hơn. Hihi
 
Chưa xong đâu. Từ bài đầu đã có ý muốn trích lọc để tính phần trăm, nhưng không nói rõ cách tính, không có mẫu kết quả rõ ràng, đến giờ này tôi nghĩ vẫn chưa đúng cái cột %.
Tôi gặp mấy cái "nếu như, ví dụ..." là chạy. Ai mà biết kết quả thực muốn có ra sao, thà dự trù sẵn bảng kết quả mẫu có bi nhiêu cột, "quất 1 phát" là xong.

Nếu anh quất 1 nhác xong luôn thì anh sẽ không giải thích code vì dông dài, vì vậy mà hỏi từ từ để tìm bí kíp mà lượm.
 
Dạ Em cảm ơn mọi người đã giúp đỡ. Em đã hoàn thiện file hoàn toàn. Gồm 3 sheet:
Sheet1: Kích vào nhân viên và đối tác hiện ra tổng số doanh thu không lặp lại
Sheet2: Lọc từng nhân viên
Sheet3: Lọc từng đối tác.

Có thể nó chưa hoàn hảo với những anh chị rành VBA, nhưng mà em cảm thấy hoàn hảo nhờ sự giúp đỡ của mấy anh chị. Em có gởi kèm file anh em tham khảo góp ý dùm em. Em cảm ơn nhiều !!!
 

File đính kèm

Dạ Em cảm ơn mọi người đã giúp đỡ. Em đã hoàn thiện file hoàn toàn. Gồm 3 sheet:
Sheet1: Kích vào nhân viên và đối tác hiện ra tổng số doanh thu không lặp lại
Sheet2: Lọc từng nhân viên
Sheet3: Lọc từng đối tác.

Có thể nó chưa hoàn hảo với những anh chị rành VBA, nhưng mà em cảm thấy hoàn hảo nhờ sự giúp đỡ của mấy anh chị. Em có gởi kèm file anh em tham khảo góp ý dùm em. Em cảm ơn nhiều !!!

Làm ra sản phẩm "chính chủ" thì cứ "vỗ đùi" mà khoái thôi.
Muốn "đã" hơn nữa thì cứ lên GPE thường xuyên, thấy cái nào hay, có thể áp dụng vào công chuyện của mình thì tự "tham khảo" và vận dụng sẽ "sướng" hơn nhiều. Nhờ người khác góp ý nhiều khi giống câu chuyện "đẽo cày giữa đường".
Chỉ khi nào không giải quyết nỗi thì đưa file lên hỏi.
 
Làm ra sản phẩm "chính chủ" thì cứ "vỗ đùi" mà khoái thôi.
Muốn "đã" hơn nữa thì cứ lên GPE thường xuyên, thấy cái nào hay, có thể áp dụng vào công chuyện của mình thì tự "tham khảo" và vận dụng sẽ "sướng" hơn nhiều. Nhờ người khác góp ý nhiều khi giống câu chuyện "đẽo cày giữa đường".
Chỉ khi nào không giải quyết nỗi thì đưa file lên hỏi.
Bác Ba tê có thể hướng dẫn mình là marco khi dùng advan filter ko.
Vì mình hay phải dùng công cụ và thao tác như vậy.
 
Web KT

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

Back
Top Bottom