Lấy dử liệu có điều kiện

Liên hệ QC

thi hoang

Thành viên mới
Tham gia
31/8/11
Bài viết
20
Được thích
0
Mình có 1 file đính kèm , ở file BÁO CÁO thì seet tháng 07 và tháng 08 là bảng số liệu mà mình cần lấy
ở seet in phiếu mình cần lấy số liệu ở seet tháng 07 và tháng 08 theo đúng tên tỉnh ở hàng c3:w3, với điều kiện là loại thuốc nào = 0 ở seet tháng 07 và tháng 08 thì không liệt kê loại thuốc đó . mong các cao thủ giúp đở
 

File đính kèm

Bạn xem ntn có được không? Dùng công thức kết hợp VBA nha!
 

File đính kèm

Mình có 1 file đính kèm , ở file BÁO CÁO thì seet tháng 07 và tháng 08 là bảng số liệu mà mình cần lấy
ở seet in phiếu mình cần lấy số liệu ở seet tháng 07 và tháng 08 theo đúng tên tỉnh ở hàng c3:w3, với điều kiện là loại thuốc nào = 0 ở seet tháng 07 và tháng 08 thì không liệt kê loại thuốc đó . mong các cao thủ giúp đở
Sử dụng VBA cho gọn
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$4" Then
    Dim Cuoi, d, Mg(), I, Vung, Ws, Tinh, Cot, K, kK
    Set d = CreateObject("scripting.dictionary")
    Set Tinh = Sheets("thang08").[c3:w3]
    Cot = Application.WorksheetFunction.Match([c4], Tinh, 0)
        For Each Ws In Worksheets
            If Ws.Name <> "inphieu" Then
                Set Vung = Ws.Range(Ws.[b4], Ws.[b1000].End(xlUp)(-1))
                ReDim Mg(1 To Vung.Rows.Count, 1 To 3)
                    For I = 1 To Vung.Rows.Count
                        If Not d.exists(Vung(I).Value) Then
                            d.Add Vung(I).Value, Vung(I).Offset(, Cot)
                        Else
                            K = d.Item(Vung(I).Value)
                                If Vung(I).Offset(, Cot) > 0 And K > 0 Then
                                    kK = kK + 1
                                    Mg(kK, 1) = Vung(I).Value: Mg(kK, 2) = K: Mg(kK, 3) = Vung(I).Offset(, Cot)
                                End If
                        End If
                    Next I
            End If
        Next Ws
    Cuoi = [a10000].End(xlUp).Row
    Range([a8], [a8].End(xlDown)).Resize(, 4).ClearContents
    Range("a10:a" & Cuoi - 2).EntireRow.Delete
    [a9].Resize(kK).EntireRow.Insert
    [b8].Resize(kK, 3) = Mg
    [a8].Resize(kK) = [row(A:A)]
    End If
End Sub
Buồn ngủ quá, bạn kiểm tra giúp mình nhé
Thân
 

File đính kèm

cảm ơn các bạn nhiều lắm, mà bạn dhn46 nè, công thức của bạn thì mình hiểu rồi
mà bạn cắt dòng sao hay vậy, bạn hướng dẩn chi tiết cho mình dược không, minh không hiểu về lập trình VBA cho lắm
 
Cắt dòng đó là dùng auto fillter thuicos gì đâu. bạn dùng auto filter cho 2 cột là ok.
 
ôi mình hiểu rồi , cảm ơn bạn nhiều
 
Neu khong muon dung VBA thi xem file nay.
...........
Bài này có file đính kèm, tha xoá
ptm0412
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
cảm ơn bạn bebo021999 nhiều nhe. file của bạn gởi rất hay
 
Web KT

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

Back
Top Bottom