Ham VLookup cộng thêm điều kiện, em giải không được (1 người xem)

  • Thread starter Thread starter hunglao
  • Ngày gửi Ngày gửi

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

hunglao

Thành viên hoạt động
Tham gia
30/8/09
Bài viết
118
Được thích
17
Em có bài toán như sau, mong các bác giải giúp em,em nghĩ mấy ngày rồi không ra
Yêu cầu sử dụng mấy công thức có sẵn, không xài macro


sieuthiNHANH2010110130444ntjjmdvhnz68458.jpeg
[/IMG
]
 

File đính kèm

Có cho phép tạo cột phụ không? Nếu được thì ta ghép 2 cột lại thì đơn giản. Nếu không thì bó tay vì hàm Vlookup chỉ do tìm trên cột đầu tiên thôi.
 
Có cho phép tạo cột phụ không? Nếu được thì ta ghép 2 cột lại thì đơn giản. Nếu không thì bó tay vì hàm Vlookup chỉ do tìm trên cột đầu tiên thôi.

Nếu không còn cách nào khác đanh làm vậy, nhưng bác lưu ý giùm là dữ liệu thực của mình khôn chỉ nằm ở cột D và còn ở cột E,F,G.... hi vong bác không làm chừng ấy cột phụ :)
 
Nếu không còn cách nào khác đanh làm vậy, nhưng bác lưu ý giùm là dữ liệu thực của mình khôn chỉ nằm ở cột D và còn ở cột E,F,G.... hi vong bác không làm chừng ấy cột phụ :)
Bạn đã nói thế thì tốt nhất cho dữ liệu thật lên đi, tôi có thể dùng mảng khỏi cột phụ luôn cũng được... Có điều e rằng làm xong bạn lại la làng tùm lum (vì không biết cách tùy biến theo dữ liệu thật của mình)
 
Bạn đã nói thế thì tốt nhất cho dữ liệu thật lên đi, tôi có thể dùng mảng khỏi cột phụ luôn cũng được... Có điều e rằng làm xong bạn lại la làng tùm lum (vì không biết cách tùy biến theo dữ liệu thật của mình)

Cũng như dữ liệu kia nhưng nếu không xài cột phụ và hàm tự tao thì tốt hơn, nói chung tuỳ biến chắc em làm được, mong bác giúp em
 
Cũng như dữ liệu kia nhưng nếu không xài cột phụ và hàm tự tao thì tốt hơn, nói chung tuỳ biến chắc em làm được, mong bác giúp em
Dùng Công thức mảng nha bạn. Bấm Ctrl+Shift+Enter khi gõ xong công thức.
M3 :
PHP:
=INDIRECT("D"&MAX((L3=$B$3:$B$8)*($C$3:$C$8="fiber")*ROW($B$3:$B$8)))
 

File đính kèm

Nếu dữ liệu của bạn là nhiều, thì xin khuyến mãi bạn 1 hàm người dùng

PHP:
Option Explicit
Function gpeVLOOKUP(LookUpValue, LookUpRange As Range, Col As Byte, sCriteria As String)
 Dim Cls As Range, sRng As Range:                                    Dim Rws As Long
 
 Rws = LookUpRange.Rows.Count + 1
 Set sRng = LookUpRange.Cells(0, 1).Resize(Rws).Find(LookUpValue, , xlFormulas, xlWhole)
 If sRng Is Nothing Then
   gpeVLOOKUP = "Nothing":                                           Exit Function
 Else
   For Each Cls In Range(sRng, LookUpRange(Rws, 1))
      If Cls.Value = LookUpValue And Cls.Offset(, 1).Value = sCriteria Then
         gpeVLOOKUP = Cls.Offset(, Col).Value:                       Exit Function
      End If
   Next Cls
 End If
End Function
 
Sao lại không được?. Thử biết liền

em thử rồi, mà hok được, cũng phải Ctrl+Shift+Enter cho tưng ô
có bác nào có cách khác dễ hiểu hơn chút kô, bên công ty em toàn gà excel cả hả, file này nằm trên sever, em may ra còn biết chứ ai mà đụng vào chắc hoa mắt luôn quá :(, từ nhỏ tới giờ chưa có xài ct mảng
 
PHP:
Option Explicit
Function gpeVLOOKUP(LookUpValue, LookUpRange As Range, Col As Byte, sCriteria As String)
 Dim Cls As Range, sRng As Range:                                    Dim Rws As Long
 
 Rws = LookUpRange.Rows.Count + 1
 Set sRng = LookUpRange.Cells(0, 1).Resize(Rws).Find(LookUpValue, , xlFormulas, xlWhole)
 If sRng Is Nothing Then
   gpeVLOOKUP = "Nothing":                                           Exit Function
 Else
   For Each Cls In Range(sRng, LookUpRange(Rws, 1))
      If Cls.Value = LookUpValue And Cls.Offset(, 1).Value = sCriteria Then
         gpeVLOOKUP = Cls.Offset(, Col).Value:                       Exit Function
      End If
   Next Cls
 End If
End Function

File trên sever nhiều người xài, một số máy ko on Macro bác ạ
 
em thử rồi, mà hok được, cũng phải Ctrl+Shift+Enter cho tưng ô
có bác nào có cách khác dễ hiểu hơn chút kô, bên công ty em toàn gà excel cả hả, file này nằm trên sever, em may ra còn biết chứ ai mà đụng vào chắc hoa mắt luôn quá :(, từ nhỏ tới giờ chưa có xài ct mảng

Chỉ cần bấm Ctrl+Shift+Enter cho ô đầu tiên. Từ ô Thứ 2 trở đi chỉ cần copy công thức xuống. Khi copy thì hẳn nhiên đã có sẵn Ctrl+Shift+Enter rồi. Trong file mình gửi lên, mình đã copy sẵn đó.
 
PHP:
Option Explicit
Function gpeVLOOKUP(LookUpValue, LookUpRange As Range, Col As Byte, sCriteria As String)
 Dim Cls As Range, sRng As Range:                                    Dim Rws As Long
 
 Rws = LookUpRange.Rows.Count + 1
 Set sRng = LookUpRange.Cells(0, 1).Resize(Rws).Find(LookUpValue, , xlFormulas, xlWhole)
 If sRng Is Nothing Then
   gpeVLOOKUP = "Nothing":                                           Exit Function
 Else
   For Each Cls In Range(sRng, LookUpRange(Rws, 1))
      If Cls.Value = LookUpValue And Cls.Offset(, 1).Value = sCriteria Then
         gpeVLOOKUP = Cls.Offset(, Col).Value:                       Exit Function
      End If
   Next Cls
 End If
End Function
Xin lỗi em đào mồ topic tý ạ.
Bác cho em hỏi tý bớt ngu đi ạ. Ko biết có đúng ý ở dưới ko ạ, vì e áp dụng vào nó toàn nothing. Rất mong được bác giải ngố

LookUpValue: Giá trị điều kiện 1 để tìm kiếm
LookUpRange: vùng tìm kiếm
Col: số thứ tự cột tìm kiếm trả về
sCriteria: Điều kiện thứ 2
 

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

Back
Top Bottom