Lọc và xuất dữ liệu trùng

  • Thread starter Thread starter bth8320
  • Ngày gửi Ngày gửi
Liên hệ QC

bth8320

Thành viên mới
Tham gia
24/11/07
Bài viết
44
Được thích
6
Nghề nghiệp
Kỹ sư tư vấn giám sát
Chào cả nhà,

Mình có một vấn đề cần sự giúp đỡ của cả nhà về vấn đề lọc nhiều điều kiện và xuất dữ liệu trùng sang file/sheet khác.
Trong file mình tải lên có 2 cột là cột Equipment và cột Item.

Trong cột Equipment có nhiều Equipment trùng nhau.
Trong cùng một loại Equipment cùng có nhiều loại Item trùng nhau.


Mình muốn lọc và xuất Equipment ra sheet 2 và trong mỗi Equipment sẽ xuất ra các loại Item theo dònđơNếu có thể dùng VBA được thì càng tốt.

Mong cả nhà giúp đỡ.

Chúc cả nhà có một kỳ nghỉ lễ vui vẻ.

Trân trọng.
 

File đính kèm

mình cũng đang rất quan tâm tới vấn đề này
 
Chào cả nhà,

Mình có một vấn đề cần sự giúp đỡ của cả nhà về vấn đề lọc nhiều điều kiện và xuất dữ liệu trùng sang file/sheet khác.
Trong file mình tải lên có 2 cột là cột Equipment và cột Item.

Trong cột Equipment có nhiều Equipment trùng nhau.
Trong cùng một loại Equipment cùng có nhiều loại Item trùng nhau.


Mình muốn lọc và xuất Equipment ra sheet 2 và trong mỗi Equipment sẽ xuất ra các loại Item theo dònđơNếu có thể dùng VBA được thì càng tốt.

Mong cả nhà giúp đỡ.

Chúc cả nhà có một kỳ nghỉ lễ vui vẻ.

Trân trọng.
Bạn làm theo hướng dẫn. Có nhiều chủ đề về việc này rồi mà ^^
 

File đính kèm

  • Untitled.jpg
    Untitled.jpg
    24.7 KB · Đọc: 20
  • Untitled2.jpg
    Untitled2.jpg
    25 KB · Đọc: 33
  • Untitled.jpg
    Untitled.jpg
    23.8 KB · Đọc: 21
Chào cả nhà,

Mình có một vấn đề cần sự giúp đỡ của cả nhà về vấn đề lọc nhiều điều kiện và xuất dữ liệu trùng sang file/sheet khác.
Trong file mình tải lên có 2 cột là cột Equipment và cột Item.

Trong cột Equipment có nhiều Equipment trùng nhau.
Trong cùng một loại Equipment cùng có nhiều loại Item trùng nhau.


Mình muốn lọc và xuất Equipment ra sheet 2 và trong mỗi Equipment sẽ xuất ra các loại Item theo dònđơNếu có thể dùng VBA được thì càng tốt.

Mong cả nhà giúp đỡ.

Chúc cả nhà có một kỳ nghỉ lễ vui vẻ.

Trân trọng.

Không hiểu rõ lắm. Đáng lẽ phải là xuất dữ liệu không trùng, xuất trùng là sao?
Thử Sub này coi có đúng ý bạn không.
PHP:
Public Sub GPE()
Dim Dic As Object, sArr(), dArr(), I As Long, K As Long, Tem As String, Tem2 As String
Application.ScreenUpdating = False
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Sheet1.Range(Sheet1.[A2], Sheet1.[B2].End(xlDown)).Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 2)
For I = 1 To UBound(sArr, 1)
    Tem = sArr(I, 1)
    Tem2 = sArr(I, 1) & "#" & sArr(I, 2)
    If Not Dic.Exists(Tem) Then
        K = K + 1
        Dic.Add Tem, K
        Dic.Add Tem2, Empty
        dArr(K, 1) = Tem
        dArr(K, 2) = sArr(I, 2)
    Else
        If Not Dic.Exists(Tem2) Then
            Dic.Add Tem2, Empty
            dArr(Dic.Item(Tem), 2) = dArr(Dic.Item(Tem), 2) & "," & sArr(I, 2)
        End If
    End If
Next I
With Sheet2
    .[A2].Resize(1000, 100).ClearContents
    .[A2].Resize(K, 2) = dArr
    .[A2].Resize(K, 2).Sort Key1:=.[A2]
    .Range(.[B2], .[B2].End(xlDown)).TextToColumns Destination:=.Range("B2"), OtherChar:=","
End With
Set Dic = Nothing
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Mình xin lỗi đã diễn giải không đầy đủ.

Vì dữ liệu thay đổi liên tục nên mình không muốn dùng chức năng lọc và loại bỏ dữ liệu trùng(Remove Duplicate) mà dùng công thức hoặc vba để hiển thị luôn và thực hiện các thao tác khác.

Trân trọng
 
Không hiểu rõ lắm. Đáng lẽ phải là xuất dữ liệu không trùng, xuất trùng là sao?
Thử Sub này coi có đúng ý bạn không.
PHP:
Public Sub GPE()
Dim Dic As Object, sArr(), dArr(), I As Long, K As Long, Tem As String, Tem2 As String
Application.ScreenUpdating = False
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Sheet1.Range(Sheet1.[A2], Sheet1.[B2].End(xlDown)).Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 2)
For I = 1 To UBound(sArr, 1)
    Tem = sArr(I, 1)
    Tem2 = sArr(I, 1) & "#" & sArr(I, 2)
    If Not Dic.Exists(Tem) Then
        K = K + 1
        Dic.Add Tem, K
        Dic.Add Tem2, Empty
        dArr(K, 1) = Tem
        dArr(K, 2) = sArr(I, 2)
    Else
        If Not Dic.Exists(Tem2) Then
            Dic.Add Tem2, Empty
            dArr(Dic.Item(Tem), 2) = dArr(Dic.Item(Tem), 2) & "," & sArr(I, 2)
        End If
    End If
Next I
With Sheet2
    .[A2].Resize(1000, 100).ClearContents
    .[A2].Resize(K, 2) = dArr
    .[A2].Resize(K, 2).Sort Key1:=.[A2]
    .Range(.[B2], .[B2].End(xlDown)).TextToColumns Destination:=.Range("B2"), OtherChar:=","
End With
Set Dic = Nothing
End Sub


Cảm ơn anh Ba Tê đã giúp đỡ.
Như vậy là rất chính xác rồi anh ạ.
 
Web KT

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

Back
Top Bottom