[Nhờ vả] Trích lọc dữ liệu sang sheet khác cùng workbook (1 người xem)

Liên hệ QC

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

lyly2626

Thành viên chính thức
Tham gia
15/5/12
Bài viết
74
Được thích
1
Như tiêu đề.
Nhờ anh/chị viết giùm 1 đoạn code theo nội dung trong file đính kèm ạ
 

File đính kèm

Bạn có thể sử dụng Advance filter cho trường hợp này - code thì record tương tự.

Các bước:

- B1: Tại sheet2
Mã:
D1: điền chữ DK
D2: =AND(COUNTIF($B$3:$B$12,B3)>1,COUNTIFS($B$3:$B$12,B3,$C$3:$C$12,C3,$D$3:$D$12,D3)=1)

- B2: Copy tiêu đề cần hiển thị thông tin trên sheet3 (thứ tự nào cũng được) và đặt chuột active tại sheet 3

- B3: Tại sheet3 chọn advance filter với vùng dữ liệu là data của bạn, vùng điều kiện là D1:D2 vừa tạo, vùng kết quả là tiêu đề bạn vừa copy

- B4: Bấm Ok để thấy kết quả.

Bạn ghi macro thì coi như xong code --=0
 
Upvote 0
Bạn có thể sử dụng Advance filter cho trường hợp này - code thì record tương tự.

Các bước:

- B1: Tại sheet2
Mã:
D1: điền chữ DK
D2: =AND(COUNTIF($B$3:$B$12,B3)>1,COUNTIFS($B$3:$B$12,B3,$C$3:$C$12,C3,$D$3:$D$12,D3)=1)

- B2: Copy tiêu đề cần hiển thị thông tin trên sheet3 (thứ tự nào cũng được) và đặt chuột active tại sheet 3

- B3: Tại sheet3 chọn advance filter với vùng dữ liệu là data của bạn, vùng điều kiện là D1:D2 vừa tạo, vùng kết quả là tiêu đề bạn vừa copy

- B4: Bấm Ok để thấy kết quả.

Bạn ghi macro thì coi như xong code --=0
Dạ anh ơi em làm ko được gặp lỗi "The extract range há a mising ỏ invalid field name". Xin anh chỉ rõ hơn đc ko ạ!
 
Upvote 0
Vùng dữ liệu data tính cả tiêu đề bạn nhé: A2:D12
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
Như tiêu đề.
Nhờ anh/chị viết giùm 1 đoạn code theo nội dung trong file đính kèm ạ

lâu lâu phải dzợt lại, để hong quên mất
Mã:
Option Explicit
Sub test()
Dim data, kq(1 To 6000, 1 To 3), itm As Variant
Dim d As Object
Dim i, j, k As Long
    
data = Sheet2.[b3:d6000]
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(data)
    If data(i, 1) = "" Then Exit For
    If Not d.exists(data(i, 1)) Then
        d.Add data(i, 1), Array(i, data(i, 2))
    Else
        itm = d.Item(data(i, 1))
        If InStr(1, itm(1), data(i, 2)) = 0 Then
            If Len(itm(0)) = 1 Then
                k = k + 2
                For j = 1 To 3
                    kq(k - 1, j) = data(itm(0), j)
                    kq(k, j) = data(i, j)
                Next
            Else
                k = k + 1
                For j = 1 To 3
                    kq(k, j) = data(i, j)
                Next
            End If
            d.Item(data(i, 1)) = Array(itm(0) & i, itm(1) & data(i, 2))
        End If
    End If
Next
If k Then
With Sheet3
    .[e3:g6000].ClearContents
    .[e2].Resize(k, 3) = kq
End With
End If
 
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom