Tìm kết quả trả về giá trị đầu tiên tìm thấy. (2 người xem)

  • Thread starter Thread starter chjck3n
  • Ngày gửi Ngày gửi
Liên hệ QC

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

chjck3n

Thành viên mới
Tham gia
5/12/08
Bài viết
9
Được thích
1
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 đỡ.
 

File đính kèm

Bạn thử với hàm tự tạo sau:

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,B1:D5) để 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!
 
Dùng thử công thức này:
Mã:
=INDEX($A$1:$A$5,MIN(MATCH(400,B1:B5,0),MATCH(400,C1:C5,0),MATCH(400,D1:D5,0)))
 
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 đỡ.
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:
PHP:
=MIN(IF($B$1:$D$5=400,$A$1:$A$5))
Nếu cột ngày tháng không theo trật tự và muốn lấy kết quả đầu tiên tìm thấy thì dùng cái này:
PHP:
=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))
Công thức mảng, gõ xong phải bấm tổ hợp phím Ctrl + Shift + Enter
 
Lần chỉnh sửa cuối:
@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é.-+*/
 
@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é.-+*/
Bạn xem lại cách làm của thầy ndu96081631 xem, mình thấy rất ổn.

 
@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é.**~**
 

File đính kèm

@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é.**~**
Xem file không hiểu gì cả!
Bạn giải thích rõ tí đi! Tại sao kết quả = 50 thì ngày 30/12/2011? Tôi nhìn trong file thì ngày phải =25/12/2010 mới đúng chứ?
 
@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.
 
@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.
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?
 
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.
 
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.
Có phải ý bạn đơn giản thế này không:
 

File đính kèm

@bebo021999: không phải bạn ơi. Mình muốn tìm công thức để trả về ngày đầu tiên tìm thấy giá trị cần kiểm tra, tính từ ngày tiếp theo của ngày đưa ra dữ liệu kiểm tra.!$@!!
 
Xong oài.

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,B1:D5) để 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!

Hehe.
Sau mấy ngày tìm tòi mầy mò cuối cùng đã xử lý xong.
Ở đoạn TimTri = sRng.Address thay code là TimTri = cells(sRng.Row,1).Value
Cám ơn mọi người đã giúp đỡ mình.@$@!^%
 
(/ậy là GPE cho bạn cái que làm cần & sau khi vót lại, bạn đã câu được cá

(/ới bạn, chắc đây là con cá to
@$@!^%

Xin chúc mừng bạn


(SPAM vài giờ & xin các MOD/SMOD thông cảm!)
 
Web KT

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

Back
Top Bottom