Nhờ anh chị giúp về lọc dữ liệu

Liên hệ QC

haithong81

Thành viên mới
Tham gia
3/1/18
Bài viết
2
Được thích
0
Giới tính
Nam
Em có file như đính kèm, nhờ anh chị chỉ giúp cách làm như yêu cầu em đã ghi chú chữ màu xanh trong file
 

File đính kèm

  • VD.xlsx
    9.8 KB · Đọc: 19

File đính kèm

  • GPE.xlsm
    19.5 KB · Đọc: 6
Lần chỉnh sửa cuối:
Upvote 0
1 cách khác xài VBA với AdvancedFilter & Dsum:
a./ Đổi tiêu đề các cột thành G1. . . [G11]
, Chép các ô này sang [M1:W1]
Chạy macro này để có kết quả
PHP:
Sub AdvancedFilter()
 Dim Rws As Long
 Dim CSDL As Range, Cls As Range, WF As Object, sRng As Range
 
 Set CSDL = [G2].CurrentRegion
 Rws = CSDL.Rows.Count
1 ' Loc Duy Nhat Theo Cot "G"    '
 Range("G1:K" & Rws).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
    "W1:W2"), CopyToRange:=Range("S1:W1"), Unique:=True
 [Y1].Value = [s1]
 Set WF = Application.WorksheetFunction
 For Each Cls In Range([s2], [s1].End(xlDown))
2 '  Dien 06 Cot Du Lieu Phia Truoc  '
    Set sRng = [G1].Resize(Rws).Find(Cls.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        Cls.Offset(, -6).Resize(, 6).Value = sRng.Offset(, -6).Resize(, 6).Value
    Else
        MsgBox "GPE.COM"
    End If
3 '  Tinh Tong Trung:    '
    [y2].Value = Cls.Value
    Cls.Offset(, 3).Value = WF.DSum(Range("G1:K" & Rws), [J1], [Y1:Y2])
 Next Cls
End Sub
 
Upvote 0
Bài này hôm qua mình có xem rồi nhưng diễn đàn lại tạm dừng nâng cấp. Thôi dù sao cũng làm rồi nên gửi bạn tham khảo file của chuối này.với lại như bác be09 đã nhắc nhở đấy. Bạn xem lại nội quy diễn đàn. Và đợi các bác ấy cho sự trợ giúp tối ưu hơn. Mình mới học VBA góp vui thôi
Vì 2 bảng số cột là như nhau nên bạn thay vì ghi từng cột theo kiểu:
PHP:
ArrKQ(k, 1) = ArrDL(i, 1)
....
Thì bạn thay đổi như này cho gọn nhé:
PHP:
For j = 1 To 11
    ArrKQ(k, j) = ArrDL(i, j)
Next j
 
Upvote 0
Vì 2 bảng số cột là như nhau nên bạn thay vì ghi từng cột theo kiểu:
PHP:
ArrKQ(k, 1) = ArrDL(i, 1)
....
Thì bạn thay đổi như này cho gọn nhé:
PHP:
For j = 1 To 11
    ArrKQ(k, j) = ArrDL(i, j)
Next j
Cảm ơn bác đã gớp ý,hihi mới học nên làm hơi cồng kềnh bác ah
 
Upvote 0
Em có file như đính kèm, nhờ anh chị chỉ giúp cách làm như yêu cầu em đã ghi chú chữ màu xanh trong file
Công thức mảng, Ctrl+Shift+Enter
Mã:
G2 =IFERROR(INDEX(Sheet2!$G$2:$G$30,MATCH(0,COUNTIF($G$1:G1,Sheet2!$G$2:$G$30)+(Sheet2!$G$2:$G$30=""),0)),"")
Enter bình thường
Mã:
J2 =IF($G2="","",SUMIF(Sheet2!$G$2:$G$30,G2,Sheet2!$J$2:$J$30))
Mã:
A2 =IF($G2="","",INDEX(Sheet2!A$2:A$30,MATCH($G2,Sheet2!$G$2:$G$30,0)))
Copy ô A2 cho các ô còn lại ở dòng 2
Copy dòng 2 xuống dưới
 

File đính kèm

  • VD.xlsx
    16 KB · Đọc: 5
Upvote 0
Web KT

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

Back
Top Bottom