Trích rút dữ liệu theo cột có giá trị khác rỗng (1 người xem)

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

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

uoc123

Thành viên mới
Tham gia
20/2/13
Bài viết
48
Được thích
0
Mình đang có file này muốn trích lọc dữ liệu ra nhưng chưa làm được, nhờ các bạn giúp đỡ:
Sheet 1 là danh sách khách hàng tổng hợp
Giờ mình muốn lọc dữ liệu những khách hàng có công nợ ra sheet 2 kèm điều kiện theo tên nhân viện kinh doanh
VD: NVKD: Nam, có công nợ những khách hàng nào
Mong các bạn giúp đỡ
Thân
 

File đính kèm

Dùng VBA bạn nhé.
Thay đổi tên NV tại D3 để thấy kết quả
 

File đính kèm

Bạn paste code sau vào sheet 2. Thay đổi giá trị tại G1 để code chạy.
Mã:
Option Explicit
Private Sub Worksheet_Activate()
Dim Arr(), I As Long, Dic As Object
Arr = Sheet1.Range(Sheet1.[P5], Sheet1.[P65000].End(3)).Value
Set Dic = CreateObject("scripting.dictionary")
    For I = 1 To UBound(Arr)
        Dic(Arr(I, 1)) = ""
    Next I
       Range("G1").Validation.Delete
       Range("G1").Validation.Add 3, , , Join(Dic.keys, ",")
       Range("G1").Font.Bold = True
       Range("G1").Interior.ColorIndex = 6
Set Dic = Nothing
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Arr, dArr, I&, K&, NV, Tong&
NV = [G1].Value
With Sheet1
    Arr = .Range(.[B5], .[B65000].End(3)).Resize(, 16).Value
End With
ReDim dArr(1 To UBound(Arr), 1 To 5)
Application.ScreenUpdating = False
If Target.Address = "$G$1" Then
    For I = 1 To UBound(Arr)
    If Arr(I, 15) = NV And Arr(I, 14) > 0 Then
        K = K + 1
            dArr(K, 1) = K
            dArr(K, 2) = Arr(I, 1)
            dArr(K, 3) = Arr(I, 2)
            dArr(K, 4) = Arr(I, 3)
            dArr(K, 5) = Arr(I, 14)
            Tong = Tong + Arr(I, 14)
    End If
    Next I
        dArr(K + 1, 2) = "T" & ChrW(7893) & "ng "
        dArr(K + 1, 5) = Tong
If [A65000].End(3).Row > 5 Then
    Range([A6], [B65000].End(3)).Resize(, 5).Borders.LineStyle = 0
    Range([A6], [B65000].End(3)).Resize(, 5).ClearContents
End If
If K Then
    Range("A6").Resize(K + 1, 5) = dArr
    Range("A6").Resize(K + 1, 5).Borders.LineStyle = 1
End If
End If
Application.ScreenUpdating = True
End Sub
MÌnh muốn lấy thêm một cột dữ liệu khác nữa thêm vào thì sửa code thế nào bạn.
VD cột ngày đổ chẳng hạn
 
Lại phải nhờ thêm bạn một chút nữa, nếu sheet 1 mình muốn thêm hoặc bớt một cột nữa thì sửa code thế nào ạ.hi mình không biết VBA, giờ mới chuẩn bị học+-+-+-+
 
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Arr, dArr, I&, K&, NV, Tong&
NV = [G1].Value
With Sheet1
    Arr = .Range(.[B5], .[B65000].End(3)).Resize(, 16).Value
End With
ReDim dArr(1 To UBound(Arr), 1 To 6)
Application.ScreenUpdating = False
If Target.Address = "$G$1" Then
    For I = 1 To UBound(Arr)
    If Arr(I, 15) = NV And Arr(I, 14) > 0 Then
        K = K + 1
            dArr(K, 1) = K
            dArr(K, 2) = Arr(I, 1)
            dArr(K, 3) = Arr(I, 2)
            dArr(K, 4) = Arr(I, 3)
            dArr(K, 5) = Arr(I, 4)
            dArr(K, 6) = Arr(I, 14)
            Tong = Tong + Arr(I, 14)
    End If
    Next I
        dArr(K + 1, 2) = "T" & ChrW(7893) & "ng "
        dArr(K + 1, 6) = Tong
If [A65000].End(3).Row > 5 Then
    Range([A6], [B65000].End(3)).Resize(, 6).Borders.LineStyle = 0
    Range([A6], [B65000].End(3)).Resize(, 6).ClearContents
End If
If K Then
    Range("A6").Resize(K + 1, 6) = dArr
    Range("A6").Resize(K + 1, 6).Borders.LineStyle = 1
End If
End If
Application.ScreenUpdating = True
End Sub
Lại phải nhờ thêm bạn một chút nữa, nếu sheet 1 mình muốn thêm hoặc bớt một cột nữa thì sửa code thế nào ạ.hi mình không biết VBA, giờ mới chuẩn bị học+-+-+-+
 
Bạn sửa thêm bớt cột nào thì quăng xcái file đó lên đây. Chứ nói vậy ai biết đâu mà lần....
file đây bạn.hi, tại sheet 1 mình thêm cột Hình thức bơm, mình đã sửa sheet1.[P5], Sheet1.[P65000] thành sheet1.[Q5], Sheet1.[Q65000] thì lọc theo tên tại G1 thì không tìm thấy gì nhưng khi không lõ theo tên(xóa trắng G1) thì lại ra toàn bộ công nợ-+*/
 
Bạn sửa thêm bớt cột nào thì quăng xcái file đó lên đây. Chứ nói vậy ai biết đâu mà lần....
file đây bạn.hi, tại sheet 1 mình thêm cột Hình thức bơm, mình đã sửa sheet1.[P5], Sheet1.[P65000] thành sheet1.[Q5], Sheet1.[Q65000] thì lọc theo tên tại G1 thì không tìm thấy gì nhưng khi không lõ theo tên(xóa trắng G1) thì lại ra toàn bộ công nợ
 

File đính kèm

file đây bạn.hi, tại sheet 1 mình thêm cột Hình thức bơm, mình đã sửa sheet1.[P5], Sheet1.[P65000] thành sheet1.[Q5], Sheet1.[Q65000] thì lọc theo tên tại G1 thì không tìm thấy gì nhưng khi không lõ theo tên(xóa trắng G1) thì lại ra toàn bộ công nợ
Xem file nhé. Vẫn code cũ của ông trùm thôi.
 

File đính kèm

Web KT

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

Back
Top Bottom