Option Explicit
Function TimTri(TriTim, VungTim As Range) As String
Dim sRng As Range
Set sRng = VungTim.Find(TriTim, , xlFormulas, xlWhole)
If sRng Is Nothing Then
TimTri = "Nothing"
Else
TimTri = sRng.Address
End If
End Function
=INDEX($A$1:$A$5,MIN(MATCH(400,B1:B5,0),MATCH(400,C1:C5,0),MATCH(400,D1:D5,0)))
Nếu cột ngày tháng luôn sắp xếp tăng dần thì dùng công thức này:Hiện mình đang làm thống kê và vướng mắc ở cách tìm kiếm dữ liệu trả về kết quả đầu tiên tìm thấy. Có pác nào chỉ giúp mình xử lý bằng cách nào cụ thể được không? Mình gửi file đính kèm luôn. Mong mọi người giúp đỡ.
=MIN(IF($B$1:$D$5=400,$A$1:$A$5))
=IF(MIN(IF($B$1:$D$5=400,ROW($1:$5)))=0,"",LOOKUP(MIN(IF($B$1:$D$5=400,ROW($1:$5))),ROW($1:$5),$A$1:$A$5))
Bạn xem lại cách làm của thầy ndu96081631 xem, mình thấy rất ổn.@HYen17: Cám ơn bạn đã giúp đỡ, nhưng kết quả trả về theo cách bạn làm là trả về địa chỉ tuyệt đối của ô có giá trị tìm thấy đầu tiên. Nhưng mình đang cần tìm ngày tương ứng với kết quả tìm thấy mà (VD: theo hàm tự tạo trên thì kết quả mình cần tìm là 14-1-2011 mà hàm trên lại ra địa chỉ tuyệt đối ô tìm thấy). Bạn xem có cách khác giúp mình được không?
@bebo021999: Cám ơn bạn. Kết quả trả về chính xác nhưng nếu số cột mình cần tìm lên chừng 300 cột thì....gõ công thức không cũng đủ xỉu rồi. Bạn có cách xử lý khác giúp mình được không?
Mình đang cần gấp cách xử lý. Mọi người xem giúp đỡ mình nhé.![]()
Xem file không hiểu gì cả!@ndu96081631: Cám ơn bạn đã chỉ mình cách xử lý đó. Cách đó mình thấy rất hay, KQ đúng; nhưng mình không áp dụng được vào công việc. Có lẽ do mình không rành về excell lắm nên file VD mình gửi không mô tả được chính xác công việc và kết quả mình cần. Mình gửi lại file BC mọi người xem lại cách xử lý giúp mình nhé.![]()
Theo như bạn vừa mô tả là lấy ngay cuối cùng có kết quả giống với kết quả cần kiểm tra, đúng không?@ndu96081631: Hic, mình nhầm. Kết quả tính từ ngày kế tiếp của ngày kiểm tra. Ngày 25/12,KQ=50 thì kiểm tra các ngày tiếp theo (từ 26/12/2010). Tiếp theo ngày 30/12 KQ= 50 thì kiểm tra tiếp theo từ ngày 31/12.
Bạn cố gắng tìm cách giúp mình nhé. Cám ơn bạn nhiều.
Có phải ý bạn đơn giản thế này không:Uhm, tức là thế này: nếu ngày 25/12 cần kiểm tra 50 thì sẽ kiểm tra từ 26/12 trở đi và trả về ngày đầu tiên đạt được 50 là 26/12. Tương tự với ngày 30/12 cần kiểm tra 50 thì sẽ kiểm tra từ 31/12 trở đi và trả về ngày đầu tiên đạt được 50 là 4/1/11.
PHP:Option Explicit Function TimTri(TriTim, VungTim As Range) As String Dim sRng As Range Set sRng = VungTim.Find(TriTim, , xlFormulas, xlWhole) If sRng Is Nothing Then TimTri = "Nothing" Else TimTri = sRng.Address End If End Function
Tại 1 ô trống nào đó bạn nhập cú fáp =TimTri(400,B15) để có kết quả là địa chỉ ô đầu tiên tìm thấy! Đó là ô đầu tiên theo chiều trái sang fải & từ trên xuống dưới như bạn cần
(húc vui!
(/ới bạn, chắc đây là con cá to
![]()