Nếu chịu xài hàm tự tạo thì tặng bạn hàm này:Các bạn giúp mình vụ này với.
Mình muốn tìm kiếm ở trong bảng mà khó quá.
Các cao thủ xem file đính kèm hộ mình nhé.
Cảm ơn mọi người trước.![]()
L4=FGPE($K4;$D$6:$G$15;A$6:A$15)
Q4=FGPE($P4;$H$6:$I$15;A$6:A$15)



Mở File nhấn nút "TÌM KIẾM" và xem kết quả đã đúng ý chưa. Tôi dùng VBA nên phải enable macros trước khi mở File nhé!Các bạn giúp mình vụ này với.
Mình muốn tìm kiếm ở trong bảng mà khó quá.
Các cao thủ xem file đính kèm hộ mình nhé.
Cảm ơn mọi người trước.![]()
Public Sub Find()
Dim i As Long, j As Long, v()
Dim kq1(), kq2()
With Sheet1
kq1 = .Range("K4:K" & .Range("K65500").End(xlUp).Row).Resize(, 4)
kq2 = .Range("P4:P" & .Range("K65500").End(xlUp).Row).Resize(, 4)
v = .Range("A6:I15")
For i = 1 To UBound(kq1)
For j = 1 To UBound(v)
If kq1(i, 1) = v(j, 4) Or kq1(i, 1) = v(j, 5) Or kq1(i, 1) = v(j, 6) Or kq1(i, 1) = v(j, 7) Then
kq1(i, 2) = v(j, 1): kq1(i, 3) = v(j, 2): kq1(i, 4) = v(j, 3)
End If
Next j
Next i
For i = 1 To UBound(kq2)
For j = 1 To UBound(v)
If kq2(i, 1) = v(j, 8) Or kq2(i, 1) = v(j, 9) Then
kq2(i, 2) = v(j, 1): kq2(i, 3) = v(j, 2): kq2(i, 4) = v(j, 3)
End If
Next j
Next i
.Range("K4").Resize(UBound(kq1), 4).Value = kq1
.Range("P4").Resize(UBound(kq1), 4).Value = kq2
End With
End Sub
Sau một hồi loay hoayNếu chịu xài hàm tự tạo thì tặng bạn hàm này:
[GPECODE=vb]Public Function FGPE(DK As Range, Data As Range, Rng As Range) As Variant
Dim Arr(), dArr(), I As Long, J As Long
Arr = Data.Value
dArr = Rng.Value
For I = 1 To UBound(Arr, 1)
For J = 1 To UBound(Arr, 2)
If Arr(I, J) <> Empty Then
If Arr(I, J) = DK Then
FGPE = dArr(I, 1)
Exit For
Exit For
End If
End If
Next J
Next I
End Function[/GPECODE]
Công thức:
Kéo ngang qua 3 cột, kéo xuống đến ...PHP:L4=FGPE($K4;$D$6:$G$15;A$6:A$15) Q4=FGPE($P4;$H$6:$I$15;A$6:A$15)
Nhớ Enable Macros khi mở file

Về khoản này thì đúng là mình mù luôn bạn ah.
Đã giúp thì giúp cho chót bạn nhé vì mình enable macros rồi nhưng áp dụng vào File tổng của mình thì loay hoay mãi không làm đc![]()
Function nx(code As Range, s As Range, Title)
nx = Cells(Application.Match(code, _
Columns(s.Find(code).Column), 0), s.Find(Title).Column)
End Function


Các bạn giúp mình vụ này với.
Mình muốn tìm kiếm ở trong bảng mà khó quá.
Các cao thủ xem file đính kèm hộ mình nhé.
Cảm ơn mọi người trước.![]()
Mình đã sử dụng hàm này rồi bạn ah, chạy rất ổn định nhưng vấn đề ở đây là rất tốn RAM máy tính. List niêm xe của mình rất nhiều mỗi lần chạy file đã mất 1 phút và có thay đổi gì trong File đều bị chờ Excel chạy rất lâu nên mình mới tìm cách khác.Bạn thử áp dụng công thức mà Thầy Ndu thường dùng xem sao nhé
Tại ô L4:=INDEX($A$6:$A$15,LOOKUP(2,1/COUNTIF(OFFSET($D$5:$G$5,ROW($1:$10),,,),K4),ROW($1:$10)))
Tương tự với Q4 bạn nhé
Công thức này ok đấy bạn ơi, máy chạy rất tốt.bạn thử tiếp công thức mảng này nhé !
{=INDIRECT(ADDRESS(SMALL(IF(List_NiemXe=Sheet1!$K4,ROW(List_NiemXe)),1),COLUMN($A$5)))}
Name: List_NiemXe=Sheet1!$D$6:$G$1000



Công thức này ok đấy bạn ơi, máy chạy rất tốt.
Bạn có thể giải thích cho mình hiểu về cách đặt List_NiemXe được không? Quả thật chưa gặp lần nào




Haizzz ..... mình định đón đầu áp dụng công thức vào File của mình nhưng không được loay hoay mãi vẫn không chạy, không đơn giản chút nào.- mục đích của việc đặt Name để cho gọn + "đẹp" công thức ở bên ngoài sheet ...
- đặt Name khi công thức được lặp đi lặp lại nhiều trong 1 công thức, khi có thay đổi địa chỉ ---> chỉ cần điều chỉnh 1 lần mục Refers to của Name đó.
'------
có 2 cách đặt Name:
#1: trực tiếp ở Name Box
- quét chọn vùng D6:G15, điền tên List_NiemXe vào ô Name Box
View attachment 126162
- muốn địa chỉ dùng trong 1 "thời gian dài" ---> phải chỉnh lại $G$15 ---> $G$1000 tại Name Manager (mục Refers to)
View attachment 126164
#2: vào sâu bên trong hộp thoại Name Manager (ở thanh Ribbon/Menu - FORMULAS - Name Manager)
- tại hộp hoại Name Manager - click nút New ...
View attachment 126165
và ...
'------
mình thấy lạ, sao ko thấy bạn hỏi 2 vấn đề sau:
(1) cách hoạt động của công thức
(2) làm sao để chuyển Mã của Niêm Xe từ hàng ngang (vùng D6:G15) thành hàng dọc được như cột K![]()




Haizzz ..... mình định đón đầu áp dụng công thức vào File của mình nhưng không được loay hoay mãi vẫn không chạy, không đơn giản chút nào.
Sửa 1 chút là báo lỗi không chạy, nhân tiện nhờ bạn giải thích hoạt động của lệnh luôn chứ không hiểu kĩ đúng là không làm đc.
Mình up File lên cảm phiền bạn xem và giúp mình nhé.![]()
![]()
, mà tốt nhất là nên chuyển sang dùng Macro ... nếu số liệu lớnCảm ơn bạn rất nhiều- bạn tải file về kiểm tra kết quả nhé,
- bạn cũng có thể mò ra nếu để ý File đã gửi #1 và #12 khác nhau 1 điểm là số liệu bị nằm ở 2 sheet khác nhau ---> phải điền thêm tên sheet cho hàm Indirect thì mới nhận kết quả bên sheet HOẠT ĐỘNG.
- tại sheet Niêm Xe: có thêm 1 cột Link + giải thích các bước hình thành của công thức ô F5.
- khi bạn rê chuột vào 1 ô bất kỳ của cột J sẽ thấy địa chỉ được tìm thấy
View attachment 126205
'---------
nếu trong quá trình hoạt động cảm thấy file tính toán/ chạy chậm (vì chứa nhiều công thức mảng) ---> bạn phải tìm 1 công thức cao cấp hơn, mà tốt nhất là nên chuyển sang dùng Macro ... nếu số liệu lớn
'---------
từ khi có cột Link thì các cột khác ko cần dùng công thức mảng nữa...
(sheet Niêm Mẫu có dùng thêm điều kiện IF va IFERROR để ko còn thấy lỗi #NUM!, sheet Niêm Xe bạn làm tương tự nhé)

.