Vlookup nhiều điều kiện (1 người xem)

Liên hệ QC

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

ducleminh

Thành viên chính thức
Tham gia
3/10/07
Bài viết
66
Được thích
3
Nhờ các bạn hướng dẫn dùm mình trường hợp này nha:

Tôi có một bảng danh sách khách hàng ở sheet 1:
Cột A: CMND khách hàng
Cột B: Tình trạng hồ sơ khách hàng
cột C: ngày thanh toán

Tôi muốn dùng vlookup để lọc tình trạng khách hàng, VD tìm ngày thanh toán (Cột C) của khách hàng A (cột A) có thình trạng là "hết" (cột B)
Nhưng khách hàng A lại có 3 hồ sơ (3 dữ liệu ở cột A) với 3 tình trạng là ở cột B (hết, còn, rỗng). Vậy tôi chỉ muốn vlookup lọc ra ngày thanh toán của hồ sơ khách hàng A có tình trạng là "hết" thì như thế nào?

Các bạn tham khảo thêm file đính kèm
 

File đính kèm

Nhờ các bạn hướng dẫn dùm mình trường hợp này nha:

Tôi có một bảng danh sách khách hàng ở sheet 1:
Cột A: CMND khách hàng
Cột B: Tình trạng hồ sơ khách hàng
cột C: ngày thanh toán

Tôi muốn dùng vlookup để lọc tình trạng khách hàng, VD tìm ngày thanh toán (Cột C) của khách hàng A (cột A) có thình trạng là "hết" (cột B)
Nhưng khách hàng A lại có 3 hồ sơ (3 dữ liệu ở cột A) với 3 tình trạng là ở cột B (hết, còn, rỗng). Vậy tôi chỉ muốn vlookup lọc ra ngày thanh toán của hồ sơ khách hàng A có tình trạng là "hết" thì như thế nào?

Các bạn tham khảo thêm file đính kèm
Theo mình thì bạn có thể chèn thêm cột phụ sau cột CMND, giá trị cột này là CMND ghép với Tình trạng. Sau đó sử dụng Vlookup bình thường.
Ngoài ra, bạn có thể dùng Validation để chọn CMND và Tình trạng để hiển thị Ngày thanh toán (xem file đính kèm).
 

File đính kèm

Nếu bạn không muốn dùng cột phụ thì bạn có thể dùng công thức mảng sau
PHP:
=IF(ISNA(MATCH(F3&G3,$A$3:$A$12&$C$3:$C$12,0)),"",OFFSET($D$2,MATCH(F3&G3,$A$3:$A$12&$C$3:$C$12,0),0))

sau đó bạn nhấn Ctr+Shift+Enter

Mượn file của bạn nghiaphuc, Bạn xem trong file nhé!
 

File đính kèm

Nhờ các bạn hướng dẫn dùm mình trường hợp này nha:

Tôi có một bảng danh sách khách hàng ở sheet 1:
Cột A: CMND khách hàng
Cột B: Tình trạng hồ sơ khách hàng
cột C: ngày thanh toán

Tôi muốn dùng vlookup để lọc tình trạng khách hàng, VD tìm ngày thanh toán (Cột C) của khách hàng A (cột A) có thình trạng là "hết" (cột B)
Nhưng khách hàng A lại có 3 hồ sơ (3 dữ liệu ở cột A) với 3 tình trạng là ở cột B (hết, còn, rỗng). Vậy tôi chỉ muốn vlookup lọc ra ngày thanh toán của hồ sơ khách hàng A có tình trạng là "hết" thì như thế nào?

Các bạn tham khảo thêm file đính kèm
Một cách khác cũng tạm ổn
 

File đính kèm

Nếu bạn chỉ cần thế này:
Vậy tôi chỉ muốn vlookup lọc ra ngày thanh toán của hồ sơ khách hàng A có tình trạng là "hết" thì như thế nào?
Mình gửi bạn một hàm mảng ngắn gọn tham khảo thêm!
ô H3 {=MAX(IF((A3:A12=G3)*(C3:C12="hết"),D3:D12,""))}
 

File đính kèm

Mình có lời khuyên, có thể là tầm bậy:

Hãy dùng AdvancedFilter cho trường hợp này;

Nếu fải dùng hàm thì đây là 1 tham khảo tồi:

PHP:
Option Explicit
Function NgayTT(LookUpRange As Range, CMND As Range, TTrang As Range)
 Dim Clls As Range
 For Each Clls In LookUpRange.Cells(1, 1).Resize(LookUpRange.Rows.Count)
   If Clls.Value = CMND.Value And Clls.Offset(, 2) = TTrang.Value Then _
      NgayTT = Clls.Offset(, 3).Value
 Next Clls
End Function
Nhưng vẫn mời bạn tham khảo cho vui!

Lúc đó ở ô trống nào đó bạn muốn hiện kết quả, ta nhập cú fáp =NgayTT(A2:A12,G3,C8)
 
Nhờ các bạn hướng dẫn dùm mình trường hợp này nha:


Tôi muốn dùng vlookup để lọc tình trạng khách hàng, VD tìm ngày thanh toán (Cột C) của khách hàng A (cột A) có thình trạng là "hết" (cột B)
Nhưng khách hàng A lại có 3 hồ sơ (3 dữ liệu ở cột A) với 3 tình trạng là ở cột B (hết, còn, rỗng). Vậy tôi chỉ muốn vlookup lọc ra ngày thanh toán của hồ sơ khách hàng A có tình trạng là "hết" thì như thế nào?

Các bạn tham khảo thêm file đính kèm

Chỉ thế này thôi bạn:
Cells H3=SUMPRODUCT(($D$3:$D$12)*($A$3:$A$12=$G3)*($C$3:$C$12="hết"))
 
Cám ơn các bạn rất nhiều, cách của các bạn rất hay!
Trong trường hợp của mình thì theo mình cách của bạn thanh_tks là áp dụng phù hợp nhất !
Nhưng đều cảm ơn các sự chỉ giúp tận tình của các bạn
 
Chỉ thế này thôi bạn:
Cells H3=SUMPRODUCT(($D$3:$D$12)*($A$3:$A$12=$G3)*($C$3: $C$12="hết")
)

Bạn ơi, hàm sumproduct này áp dụng thì nếu dữ liệu ở
$D$3:$D$12 là text thì sẽ ra value, có cách nào khắc phục không ?
 
Nếu bạn chỉ cần thế này:

Mình gửi bạn một hàm mảng ngắn gọn tham khảo thêm!
ô H3 {=MAX(IF((A3:A12=G3)*(C3:C12="hết"),D3:D12,""))}

Cách của bạn gặp trục trặc khi dữ liệu ở D3:D12 là dạng text, nó ra kết quả là 0. Bạn hướng dẫn khắc phục với
 
Cách của bạn gặp trục trặc khi dữ liệu ở D3:D12 là dạng text, nó ra kết quả là 0. Bạn hướng dẫn khắc phục với
Nếu bạn nhập ngày tháng mà dạng text thì là nhập sai!
Bạn tìm hiểu thêm về cách nhập ngày tháng nhé
Một vài điều cần biết khi nhập giá trị về Ngày tháng:

+ Giá trị Năm trong biểu thức Ngày tháng có gía trị trong khoảng từ 1900 đến 9999.

+ Nếu như khi nhập giá trị Ngày tháng, số chỉ Năm chỉ được viết với 2 con số thì những số nào có giá trị 0 và <30 thì excel sẽ chuyển đổi thành Năm với giá trị bằng giá trị này cộng với 2000, giá trị nào =30 thì công với 1900.

Ví dụ: 01/01/29 sẽ chuyển thành 01/01/2029
Ví dụ: 01/01/30 sẽ chuyển thành 01/01/1930

+ Dữ liệu Ngày tháng khi nhập vào nếu không hợp lệ thì sẽ được chuyển thành dạng text :

Ví dụ: 01/13/2008, 01/01/10000..

+ Trong một vài trường hợp, nếu dữ liệu Ngày tháng nhập vào thông qua một hàm chuyển đổi thì excel sẽ tự động chuyển đổi các giá trị không đúng thành các giá trị khác tương ứng.

Ví dụ: =DATE(2008,2,31) sẽ được chuyển đổi thành =DATE(2008,3,1)=01/03/2008.

+ Tùy theo cách định dạng mà Ngày tháng nhập vào sẽ có các dạng biểu thị khác nhau, nhưng giá trị vẫn không thay đổi.

Ví dụ:

  • 18/04/2008 được chuyển đổi định dạng thành Friday 18/04/2008 với định dạng kiểu dddd dd/mm/yyyy
  • 18/04/2008 được chuyển đổi định dạng thành 39556 với định dạng kiểu General
  • 18/04/2008 được chuyển đổi định dạng thành Fri 18-Apr-2008 với định dạng kiểu ddd dd-mmm-yyyy
 
Lần chỉnh sửa cuối:
Hoặc là bạn dùng hàm mảng này cũng ngắn gọn, lấy được cả giá trị text, nhưng nếu giá trị tìm không có thì trả về #NA
{=INDEX(D3:D12,MATCH("hết",IF(A3:A12=G3,C3:C12,""),0),)}
 
Xóa comment ở đâu nhỉ
 
Lần chỉnh sửa cuối:
ngoài hàm của bạn thanh_tk
bạn khắc phục như sau
=SUM(IF((A3:A12=G3)*(C3:C12="hết"),VALUE(D3:D12),"")) bấm tổ hợp phím ctlr+shifl+enter
 
Hoặc là bạn dùng hàm mảng này cũng ngắn gọn, lấy được cả giá trị text, nhưng nếu giá trị tìm không có thì trả về #NA
{=INDEX(D3:D12,MATCH("hết",IF(A3:A12=G3,C3:C12,""),0),)}

Thanks bạn, cách bạn rất hay, nhưng nếu mình tăng điều kiện lọc lên 3, hay 4 điều kiện chứ không phải 2 thì liệu cách này chúng ta có áp dụng được không ?
 
tôi chưa thử nhưng có thể lên đến hơn 10 điều kiện
 
Thanks bạn, cách bạn rất hay, nhưng nếu mình tăng điều kiện lọc lên 3, hay 4 điều kiện chứ không phải 2 thì liệu cách này chúng ta có áp dụng được không ?
Thật ra câu của bạn có cả đống cách giải, nhưng vì từ đầu khi hỏi bạn muốn dùng vlookup nên anh em giúp bạn cách dùng vlookup
Nếu không quan tâm khi tìm không có kết quả thì #NA, bạn có thể sử dụng:
=OFFSET(D2,MATCH(F3&G3,A3:A12&C3:C12,0),0)
hay
=INDEX(D3:D12,MATCH(F3&G3,A3:A12&C3:C12,0))
"Bi" giờ bạn thêm dữ liệu và thêm vài điều kiện lên thành 3 hoặc 4 xem thử nó có "cự nự" gì không?
Thân
 
Mình chưa hiểu lắm về cách thêm nhiều điều kiện, mình upload file này lên, các bạn hướng dẫn dùm mình nha
 

File đính kèm

Web KT

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

Back
Top Bottom