Giả sử chữ d2 nằm ở ô I16, số 12 nằm ở ô J16, bạn dùng tạm công thức này nhé:Nhờ mọi người giúp mình làm sao để tìm giá trị giao nhau, khi biết giá trị tìm kiếm
Phải làm sao khi bảng dò tìm gồm nhiều ô, không phải cột đầu tiên hay dòng đầu tiên. như file đính kèm.
Giả sử chữ d2 nằm ở ô I16, số 12 nằm ở ô J16, bạn dùng tạm công thức này nhé:
=INDEX($E$4:$M$13,SUM(IFERROR(MATCH(I16,$B$4:$B$13,0),0),IFERROR(MATCH(I16,$C$4:$C$13,0),0),IFERROR(MATCH(I16,$D$4:$D$13,0),0)),SUM(IFERROR(MATCH(J16,$E$2:$M$2,0),0),IFERROR(MATCH(J16,$E$3:$M$3,0),0)))
Thế thì có lẽ phải thêm một hàm IFERROR ngoài cùng nữa nhỉtrường hợp, một trong 2 điều kiện bỏ trống (I16 hoặc J16 trống) thì ko còn đúng nữa bác ah![]()
Bài này mà dùng VBA thì xoẹt cái là xong!Nhờ mọi người giúp mình làm sao để tìm giá trị giao nhau, khi biết giá trị tìm kiếm
Phải làm sao khi bảng dò tìm gồm nhiều ô, không phải cột đầu tiên hay dòng đầu tiên. như file đính kèm.
Góp vui thêm hai cách bằng công thức Mảng:Nhờ mọi người giúp mình làm sao để tìm giá trị giao nhau, khi biết giá trị tìm kiếm
Phải làm sao khi bảng dò tìm gồm nhiều ô, không phải cột đầu tiên hay dòng đầu tiên. như file đính kèm.
=IFERROR(INDEX(E4:M13,MATCH(1,INDEX(COUNTIF(OFFSET(B3:D3,ROW(1:10),),G16),),),MATCH(1,INDEX(COUNTIF(OFFSET(D2:D3,,ROW(1:9)),H16),),)),"")
Hoặc:
=IFERROR(INDIRECT(TEXT(INDEX(MAX((B4:D13=G16)*ROW(B4:B13)*10^3)+MAX((E2:M3=H16)*COLUMN(E2:M2)),),"R000C000"),),"")
Cũng muốn "xoẹt cái" nhưng không xong. Phải "xoẹt" nhiều cái hơi bị "đau".Bài này mà dùng VBA thì xoẹt cái là xong!
Em thì làm khác: Dùng Find Method. Em viết 2 hàm:Cũng muốn "xoẹt cái" nhưng không xong. Phải "xoẹt" nhiều cái hơi bị "đau".
Function FindRow(ByVal FindValue, ByVal FindRange As Range, Optional ByVal MatchCase As Boolean = False)
Dim rngFind As Range
FindRow = CVErr(xlErrNA)
Set rngFind = FindRange.Find(FindValue, , xlValues, xlWhole, , , MatchCase)
If Not rngFind Is Nothing Then FindRow = rngFind.Row
End Function
Function FindCol(ByVal FindValue, ByVal FindRange As Range, Optional ByVal MatchCase As Boolean = False)
Dim rngFind As Range
FindCol = CVErr(xlErrNA)
Set rngFind = FindRange.Find(FindValue, , xlValues, xlWhole, , , MatchCase)
If Not rngFind Is Nothing Then FindCol = rngFind.Column
End Function
=INDEX(A1:M13,FindRow(I16,B4:D13),FindCol(J16,E2:M3))
Bạn tham khảo.Nhờ mọi người giúp mình làm sao để tìm giá trị giao nhau, khi biết giá trị tìm kiếm
Phải làm sao khi bảng dò tìm gồm nhiều ô, không phải cột đầu tiên hay dòng đầu tiên. như file đính kèm.
Đọc code của ndu96081631 mới thấy mình phải thêm cái "Option Compare Text".Em thì làm khác: Dùng Find Method. Em viết 2 hàm:
Làm "quái gì được"!e cảm ơn các anh trong diễn đàn rất nhiều. đúng là gặp toàn cao thủ.
Nếu thêm điều kiện ví dụ: nếu giá trị ở cột 1 thì đối chiếu tìm giá trị trong hàng 1 tương ứng thì phải làm sao ạ.
Mong các anh chỉ giáo.
Thử:e cảm ơn các anh trong diễn đàn rất nhiều. đúng là gặp toàn cao thủ.
Nếu thêm điều kiện ví dụ: nếu giá trị ở cột 1 thì đối chiếu tìm giá trị trong hàng 1 tương ứng thì phải làm sao ạ.
Mong các anh chỉ giáo.
I16=IFERROR(INDIRECT(TEXT(INDEX(MAX((B4:D13=G16)*ROW(B4:B13)*10^3)+MATCH(H16,INDEX(OFFSET($A$1:$M$1,INDEX(MAX((B4:D13=G16)*COLUMN($A:$C)),)-1,),),),),"R000C000"),),"")
Ủa! rồi mờ!!?điều kiện phức tạp quá ạ. các bác xem chỉ giáo giúp e. e xin chân thành cảm ơn!!
Lúc tôi viết bài #12 thì không thấy file.không phải, e mới gửi lại file khác có 3 hàng 3 cột tương ứng. điều kiện phức tạp quá ạ. các bác xem chỉ giáo giúp e. e xin chân thành cảm ơn!!
Thanks bác!Ủa! rồi mờ!!?
Hay quá. Cảm ơn bác nhiều!Lúc tôi viết bài #12 thì không thấy file.
Nếu là tôi, trong trường hợp bài toán trở nên quá phức tạp thì tôi sẽ xem lại cách bố trí dữ liệu chứ không cố làm ra kết quả bằng mọi cáchđiều kiện phức tạp quá
Nếu là tôi, trong trường hợp bài toán trở nên quá phức tạp thì tôi sẽ xem lại cách bố trí dữ liệu chứ không cố làm ra kết quả bằng mọi cách...
Tôi nói vậy là vì bắt đầu cảm thấy dữ liệu của bạn nó... dị dị rồi đấy