help-cái công thức đó sử thế nào bạn.phiền bạn 1 tí nhé- bạn có thể giải thick đoạn code vba rõ ràng 1 tí cho mình dc ko-để mình làm file khác dữ liệu lớn hơn
[GPECODE=vb]
Sub LocKH()
Dim cotdl, i As Long, k As Long
Dim VungDL, j As Long, cotkq
Dim KQ(1 To 100, 1 To 9)
Tạo mảng gồm 100 dòng 9 cột
VungDL = Sheets("Sheet1").Range("A11:AJ25").Value
Gán dữ liệu gốc vào VungDL để xử lý trên mảng
cotdl = Array(1, 2, 3, 4, 6, 11, 32, 33, 17)
Vị trí cột cần lấy dữ liệu của vùng dữ liệu gốc
cotkq = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
Vi trị cột để đưa vào Mảng KQ
For i = 1 To UBound(VungDL) ' Vòng lặp để duyệt dữ liệu Ubound(VungDL) cho biết dữ liệu có bao nhiều dòng
If VBA.UCase(VungDL(i, 15)) = VBA.UCase([K1]) Then
'Đồng nhất code dữ liệu nhập và code dữ liệu muốn lấy
Nếu duyệt Vùng dữ liệu cột 15 code KH trùng với nhau thì
j = j + 1 'Gán biến J tăng lên 1
For k = 0 To UBound(cotdl)
KQ(j, cotkq(k)) = VungDL(i, cotdl(k)) ' đưa dữ liệu mà dòng có KH muốn lấy vào mảng KQ
Next
End If
Next
With Sheets("Sheet2") 'Mở cầu lệnh with
.Range("A11:I100").ClearContents ' Xóa dữ liệu cũ nếu nhiều thay đổi phù hợp
.Range("A4").Resize(j, 9).Value = KQ ' Gán giá trị của Mảng KQ vào sheet2
End With ' kết thúc with
End Sub
[/GPECODE]
Mong giải thích vậy bạn hiểu