Lọc dữ liệu theo 3 điều kiện - dùng hàm INDEX (1 người xem)

  • Thread starter Thread starter yoomi
  • Ngày gửi Ngày gửi

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

yoomi

Thành viên thường trực
Tham gia
22/10/08
Bài viết
304
Được thích
5
Nhờ các bạn xem giúp công thức bị lỗi chỗ nào ạ.
Mình áp công thức nhưng báo lỗi,
Nhờ các bạn chỉnh giúp
Mình gửi file đính kèm nhé
Cảm ơn
 

File đính kèm

Nhờ các bạn xem giúp công thức bị lỗi chỗ nào ạ.
Mình áp công thức nhưng báo lỗi,
Nhờ các bạn chỉnh giúp
Mình gửi file đính kèm nhé
Cảm ơn
Chào yoomi,

1. Bạn chỉnh theo công thức mảng sau:
PHP:
E2=IFERROR(INDEX($J$2:$J$18,MATCH(B2&C2&D2,$G$2:$G$18&$H$2:$H$18&$I$2:$I$18,0)),"")
Ctrl+Shift+Enter rồi fill xuống

hoặc dùng công thức sau:
PHP:
E2=IFERROR(LOOKUP(2,1/($G$2:$G$18&$H$2:$H$18&$I$2:$I$18=B2&C2&D2),$J$2:$J$18),"")
Enter rồi fill xuống

2. Bạn phải điều chỉnh hai cột mã nhân viên sao cho có mã khớp thì mới biết hàm đúng hay sai chứ!

Chúc bạn ngày vui.
 
Có 1 vài dòng công thức không nhảy dữ liệu
Nhờ các bạn xem giúp mình.
Các bạn có thể viết Code giùm mình được không, vì dữ liệu nhiều chạy rất nặng


998610 ngày 25/11/2016 có dữ liệu nhưng bảng công thức không nhảy ra dữ liệu




Cảm ơn cả nhà
 

File đính kèm

Có 1 vài dòng công thức không nhảy dữ liệu
Nhờ các bạn xem giúp mình.
Các bạn có thể viết Code giùm mình được không, vì dữ liệu nhiều chạy rất nặng
............................................................................
Úi chu choa ơi!

Bạn chịu khó bỏ các công thức mảng ra đi (CT mảng cở >1000 dòng là chịu không thấu rồi), tôi mở file kèm máy nó quay mòng mòng -+*/-+*/, dòm được số dòng cuối của bạn là 38844. **~****~**
Nếu dữ liệu của bạn có dòng nhiều như vậy, thì bạn gửi lai file (đã bỏ công thức mảng) ra, rồi bạn nhờ anh em khác hỗ trợ bằng Code VBA rồi.

Vậy nha!

Chúc bạn ngày vui.
 
Có 1 vài dòng công thức không nhảy dữ liệu
Nhờ các bạn xem giúp mình.
Các bạn có thể viết Code giùm mình được không, vì dữ liệu nhiều chạy rất nặng


998610 ngày 25/11/2016 có dữ liệu nhưng bảng công thức không nhảy ra dữ liệu




Cảm ơn cả nhà
bạn tạo cột phụ F, file khá nhẹ
Mã:
F2 =G2&"a"&I2
copy xuống
Mã:
E2 =VLOOKUP(B2&"a"&D2,$F$2:$J$38844,5,0)
copy xuống
 
Viết code lọc dữ liệu theo 3 điều kiện

Nhờ các bạn viết giúp mình Code chạy công thức lọc dữ liệu theo 3 điều kiện
Mình áp công thức mảng nhung vì dữ liệu quá nhiều nên chạy rất chậm
Mình gửi file đính kèm
Nhờ các bạn hỗ trợ

Chân thành cảm ơn.
 

File đính kèm

Nhờ các bạn viết giúp mình Code chạy công thức lọc dữ liệu theo 3 điều kiện
Mình áp công thức mảng nhung vì dữ liệu quá nhiều nên chạy rất chậm
Mình gửi file đính kèm
Nhờ các bạn hỗ trợ

Chân thành cảm ơn.

Bạn thử code này
Mã:
Sub fill()
    Dim cn As Object
    Set cn = CreateObject("ADODB.Connection")
    cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";")
    Range("B2").CopyFromRecordset cn.Execute("select a.*, b.f4 from [B2:D] a left join [g2:J] b on a.f1 = b.f1 and a.f3 = b.f3")
    Set cn = Nothing
End Sub
 
Nhờ các bạn viết giúp mình Code chạy công thức lọc dữ liệu theo 3 điều kiện
Mình áp công thức mảng nhung vì dữ liệu quá nhiều nên chạy rất chậm
Mình gửi file đính kèm
Nhờ các bạn hỗ trợ

Chân thành cảm ơn.
bạn chạy thử code
Mã:
Sub LayDL()
Dim Dic As Object, Darr(), Sarr(), Arr(), i As Long, tmp As String
With Sheets("Chi tiet")
    Sarr = .Range("B2:D" & .Range("B2").End(xlDown).Row).Value
    Darr = .Range("G2:J" & .Range("G2").End(xlDown).Row).Value
    ReDim Arr(1 To UBound(Sarr), 1 To 1)
    Set Dic = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Darr)
        tmp = Darr(i, 1) & "#" & Darr(i, 3)
        If Not Dic.exists(tmp) Then Dic.Add tmp, Darr(i, 4)
    Next i
    For i = 1 To UBound(Sarr)
        tmp = Sarr(i, 1) & "#" & Sarr(i, 3)
        If Dic.exists(tmp) Then Arr(i, 1) = Dic.Item(tmp)
    Next i
    Set Dic = Nothing
    .Range("E2").Resize(UBound(Arr)).Value = Arr
End With
End Sub
 

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

Back
Top Bottom