Hàm VLookup - 2 điều kiện - Kết quả trùng lặp.

Liên hệ QC

vietthanhbk

Thành viên mới
Tham gia
26/12/08
Bài viết
13
Được thích
0
Mình muốn nhờ anh em chỉ giáo chổ này
Ý mình muồn là với 2 điều kiện là Mã KH và Ngày sản xuất ở báo cáo sản xuất thì sẽ hiện ra Mac Bê tông ở ở Quản lý mẫu. ( Tính đến khả nẳng là cùng 1 ngày cùng 1 khách hàng lại yêu cầu 2 hoặc 3 cấp Mac ví dụ như Ma KH THOI DAI ngày sản xuất 03/01/2010 lại đổ 2 cấp mác 300B6 xả và 150B6 xả.
 

File đính kèm

Lần chỉnh sửa cuối:
Mình muốn nhờ anh em chỉ giáo chổ này
Ý mình muồn là với 2 điều kiện là Mã KH và Ngày sản xuất ở báo cáo sản xuất thì sẽ hiện ra Mac Bê tông ở ở Quản lý mẫu. ( Tính đến khả nẳng là cùng 1 ngày cùng 1 khách hàng lại yêu cầu 2 hoặc 3 cấp Mac ví dụ như Ma KH THOI DAI ngày sản xuất 03/01/2010 lại đổ 2 cấp mác 300B6 xả và 150B6 xả.

Bạn nên sửa lại tiêu đề (bỏ help help...) không bài này sẽ bị xóa
Dùng công thức này tại F7 (sheet quan ly mau) & kéo xuống:
=INDEX('bao cao san xuat'!$E$7:$E$12,MATCH($B7&$C7,'bao cao san xuat'!$B$7:$B$12&'bao cao san xuat'!$A$7:$A$12,0))
Lưu ý: kết thúc công thức phải dùng tổ hợp phím Ctrl+Shift+Enter
 
Mình cảm ơn bạn đã nhắc nhở nhưng mình đã làm theo cách cuả bạn nó không thức hiện đúng với yêu cầu của mình là Chổ Mã KH THOI DAI có ngày 03/01/2010 có 2 cấp Mác . Vậy thì phải làm sao?
 

File đính kèm

Lần chỉnh sửa cuối:
Vấn đề của bạn theo mình thì sẽ giải quyết như sau:

Vi theo 2 điều kiện mà bạn đưa ra là Mã KH và ngày sản xuất thì không thể thực hiện được, 2 điều kiện hoàn toàn giống nhau thì không thể tìm được, vì điều kiện thứ nhất cùng là Mã KH thời đại, điều kiện thứ 2 cũng cùng là ngày 1/3/2009, thì nó sẽ ưu tiên show ra kết quả ơ dòng đầu tiên.

Thay vì như vậy, bạn cần tìm 1 điều kiện nữa, điều kiện này ở 2 dòng sẽ khác nhau, thì tương ứng với mỗi dòng là kết quả mác khác nhau.

Ví dụ mình cho thêm điều kiện là thời gian thực hiện: là buổi sáng và buổi chiều chẳng hạn.

Bạn xem file đính kèm nhé!

Có gì không hiêu bạn cứ viết lại nhé!
 

File đính kèm

Chuyển sang xài macro sự kiện là được, như sau

PHP:
Option Explicit
Dim MacBT As String
Private Sub Worksheet_Change(ByVal Target As Range)
 
 If Not Intersect(Target, [c7].Resize(999)) Is Nothing Then
   Dim MaKH As Range, NDuc As Range, sRng As Range
   Dim SoLan As Byte
   Dim MyAdd As String, Format_ As String
   
   MacBT = "GPE.COM"
   If Target.Row > 7 Then
      Set NDuc = Range([c7], Target.Offset(-1))
      Format_ = NDuc.NumberFormat
      If Format_ <> "m/d/yyyy" Then NDuc.NumberFormat = "m/d/yyyy"
   Else
      TimMac [c7].Value, [b7].Value
      [f7].Value = MacBT:                          MacBT = ""
      Exit Sub
   End If
   Set sRng = NDuc.Find(Format(Target.Value, "m/d/yyyy"), , xlFormulas, xlWhole)
   If sRng Is Nothing Then
      TimMac Target.Value, Target.Offset(, -1).Value
      Target.Offset(, 3).Value = MacBT:            MacBT = ""
   Else
      MyAdd = sRng.Address
      Do
         If sRng.Offset(, -1).Value = Target.Offset(, -1).Value Then
            SoLan = SoLan + 1
         End If
         Set sRng = NDuc.FindNext(sRng)
      Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
      TimMac Target.Value, Target.Offset(, -1).Value, SoLan
      Target.Offset(, 3).Value = MacBT:            MacBT = ""
   End If
 End If
End Sub

PHP:
Sub TimMac(Dat As Date, KHg As String, Optional SoLan As Byte)
 Dim Sh As Worksheet, Rng As Range, sRng As Range
 Dim MyAdd As String, Num As Byte
 
 Set Sh = Sheets("BCSX")
 Set Rng = Sh.Range(Sh.[A6], Sh.[A65500].End(xlUp))
 Set sRng = Rng.Find(Dat)
 If Not sRng Is Nothing Then
   MyAdd = sRng.Address
   Do
      If Num = SoLan And sRng.Offset(, 1).Value = KHg Then
         MacBT = sRng.Offset(, 4).Value:           Exit Sub
      End If
      If sRng.Offset(, 1).Value = KHg Then
         If SoLan < 1 Then
            MacBT = sRng.Offset(, 4).Value:        Exit Sub
         Else
            Num = 1 + Num
         End If
      End If
      Set sRng = Rng.FindNext(sRng)
   Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
 End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Rất cảm ơn bạn nha! Nhưng mình không thể bắt bộ phận khác chèn thêm dòng thời gian vào được ( Mình Chỉ Sử Dụng File Của họ để phục vụ Quản Lý Mẫu của mình ) Với lại nếu ở cùng 1 thời điểm khách hàng mình lại thực hiện 2 khối đổ ở 2 cấp Mác Khác nhau nhau thì làm thế nào, điều này rất hay xảy ra. Có cách nào cho nó dò theo được không hoặc bắt nó hiện lên ở đây đang có những mác này bạn chọn mác nào ?
 
Mình cảm ơn bạn đã nhắc nhở nhưng mình đã làm theo cách cuả bạn nó không thức hiện đúng với yêu cầu của mình là Chổ Mã KH THOI DAI có ngày 03/01/2010 có 2 cấp Mác . Vậy thì phải làm sao?
thêm cột phụ và dung vlookup bình thường thôi
xem file nhé
 

File đính kèm

Lần chỉnh sửa cuối:
MÌnh chưa thử cách macro, Mình hơi ngại vấn đề này hehhe. Còn cách của anh Le Duy Duong cho e hoi nửa nha. Nếu em có 3 kết quả mác trùng lặp thế nhưng em không muốn hiện kết quả ở giửa mà muốn hiện kết quả phía sau thì làm sao...
Hay để em thử cách của anh SA_DQ xem thế nào... Nhưng dù sao rất cảm ơn các anh nha!
 
Web KT

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

Back
Top Bottom