Nếu chúng ta có một hàm DFind("Tìm theo nhiều điều kiện")=Giá trị cần tìm thì tuyệt vời phải không? Rất tiếc tất cả các hàm tìm kiếm của EXCEL hiện nay đều chỉ tìm theo 1 điều kiện, và rõ ràng nếu chúng ta dùng Auto/Advance Filter trường hợp này là không hợp lý! Nhất thiết làm việc trên EXCEL phải có một hàm tìm giá trị theo nhiều điều kiện!!!
Dù sao vấn đề của bạn chỉ nằm trong một sheet nên dễ hơn.
Mình gợi ý viết một hàm gọi là GetValueBy(...) để nhận TK thứ 3.
Tôi giả định Sổ Nhật ký của bạn có các cột [..., SoCT, VAT, TKNO, TKCO, ...]
'============Copy Hàm này vào môi trường VBA trên file EXCEL của bạn
Function GetValueBy(Byval strSoCT as String, Byval nCotTraVe as Integer) as String
On Error Goto LOI:
'===Các khai báo sau dấu bằng (=) bạn hãy tự thay đổi theo cấu trúc sổ của bạn
Const strNhatky="SheetNhatky"
Const nStartRow=4 'tùy vào dòng đầu sổ nhật ký của bạn
Const nSoCT=1 'Cột Số CT
Const nVAT=5 ' Cột ghi VAT
Const nTKNO=6 'Cột ghi TK Nợ
Const nTKCO=7 'Cột ghi TK Có
'===========Kết thúc khai báo của bạn
Dim d as Long
Dim WS as Worksheet
Set WS=Worksheets(strNhatky)
d=nStartRow
Do While WS.Cells(d,nSoCT).Value<>""
If (WS.Cells(d,nSoCT).Value=strSoCT And WS.Cells(d,nVAT).Value<> "") then
GetValueBy=WS.Cells(d,nCotTraVe).Value
Exit Do
End If
d=d+1
Loop
LOI:
Set WS= Nothing
If Err<>0 then Msgbox("Có lỗi: " & Err.Description)
End Function
'==========================Kết thúc Hàm
Chúc bạn thành công!
VBA giúp gỡ rối trong công việc rất nhiều! Bằng cách nào đó các bạn nên học VBA căn bản!