Vlookup nhiều điều kiện - nhờ giải hộ

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

longba

Thành viên mới
Tham gia
30/12/13
Bài viết
3
Được thích
0
CHào anh/chị
Em có bài toán sau trên excel mà không biết cách giải quyết. Như sau:

Trong Sheet TH em có cột A là cột Mã 1, mỗi mã trong cột này sẽ xuất hiện một hoặc nhiều lần ứng với các giá trị trong cột B (Số TK) và cột E (Số LG).

Trong Sheet A, em đã nhập sẵn các Mã 1, mỗi mã chỉ xuất hiện 1 lần.

Yêu cầu đặt ra là: Trong cột F (Sheet A), Em phải lấy giá trị của cột B (số TK) trong sheet TH có Mã 1 tương ứng. Nhưng chỉ lấy 1 lần duy nhất và giá trị lấy đó phải thỏa mãn điều kiện là So LG tương ứng của cột E(Sheet TH) phải lớn hơn So LG tương ứng của cột D(Sheet A). Nếu trong tất cả các mã giống nhau của Mã 1 (Sheet TH), có bất kỳ 1 giá trị nào thỏa mãn So LG(TH) >= So LG(A) thì ta lấy cái đó. Chỉ trừ trường hợp tất cả các Mã 1 (TH) không có giá trị So LG(TH) nào thỏa mãn thì mới cho giá trị 0.

Em đã dùng hàm vlookup nhưng ko hiệu quả vì vlookup chỉ lấy giá trị của dòng đầu tiên tìm được, cho nên sẽ nhận giá trị 0 nếu dòng đầu tiên của Mã 1 không thỏa. Tuy nhiên Mã 1 suất hiện nhiều lần nên em bí rồi, vlookup ko tỏ ra hiệu quả.

Nhờ các cao thủ chỉ giáo. File em đã đính kèm trong bài. Xin cảm ơn.
 

File đính kèm

Cái này chắc phải viết bằng VBA thôi, mình thử dùng mấy cái công thức có sẵn thì cũng ra được như ý của bạn muốn nhưng không copy được cho tất cả bảng mà chỉ cho ra kết quả được 1 dòng. Bạn xem thử file đã làm nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
Lý do chưa hoàn thiện theo ý của bạn: Cái công thức Dmin nó phải chọn vùng điều kiện chứ không dùng công thức hoặc vùng động nên mình chưa nghĩ ra cách để chạy cái vùng ấy cùng dữ liệu được.
 
lâu rồi ko đụng vào giờ nhìn lại như đám rừng dị trời >"<
 
Cái này chắc phải viết bằng VBA thôi, mình thử dùng mấy cái công thức có sẵn thì cũng ra được như ý của bạn muốn nhưng không copy được cho tất cả bảng mà chỉ cho ra kết quả được 1 dòng. Bạn xem thử file đã làm nhé.

Cảm ơn bạn hungpa nhiều. Nếu có thời gian nhờ bạn nghiên cứu thêm để hoàn thiện giúp.
 
CHào anh/chị
Em có bài toán sau trên excel mà không biết cách giải quyết. Như sau:

Trong Sheet TH em có cột A là cột Mã 1, mỗi mã trong cột này sẽ xuất hiện một hoặc nhiều lần ứng với các giá trị trong cột B (Số TK) và cột E (Số LG).

Trong Sheet A, em đã nhập sẵn các Mã 1, mỗi mã chỉ xuất hiện 1 lần.

Yêu cầu đặt ra là: Trong cột F (Sheet A), Em phải lấy giá trị của cột B (số TK) trong sheet TH có Mã 1 tương ứng. Nhưng chỉ lấy 1 lần duy nhất và giá trị lấy đó phải thỏa mãn điều kiện là So LG tương ứng của cột E(Sheet TH) phải lớn hơn So LG tương ứng của cột D(Sheet A). Nếu trong tất cả các mã giống nhau của Mã 1 (Sheet TH), có bất kỳ 1 giá trị nào thỏa mãn So LG(TH) >= So LG(A) thì ta lấy cái đó. Chỉ trừ trường hợp tất cả các Mã 1 (TH) không có giá trị So LG(TH) nào thỏa mãn thì mới cho giá trị 0.

Em đã dùng hàm vlookup nhưng ko hiệu quả vì vlookup chỉ lấy giá trị của dòng đầu tiên tìm được, cho nên sẽ nhận giá trị 0 nếu dòng đầu tiên của Mã 1 không thỏa. Tuy nhiên Mã 1 suất hiện nhiều lần nên em bí rồi, vlookup ko tỏ ra hiệu quả.

Nhờ các cao thủ chỉ giáo. File em đã đính kèm trong bài. Xin cảm ơn.

Bạn dùng công thức mảng này xem sao:

=IFERROR(INDEX(TH!$B$2:$B$3873,SMALL(IF(IF((TH!$A$2:$A$3873=G11)*(TH!$E$2:$E$3873>=D11),TH!$E$2:$E$3873)=MIN(IF((TH!$A$2:$A$3873=G11)*(TH!$E$2:$E$3873>=D11),TH!$E$2:$E$3873,"")),ROW(TH!$E$2:$E$3873)-1,""),1)),0)

Kết thúc Ctrl + Shift + Enter.
 
Cảm ơn bạn mhung rất nhiều. Công thức bạn đưa đã giúp mình học hỏi được rất nhiều hàm mới và giải quyết tương đối được vấn đề rồi.
 
Web KT

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

Back
Top Bottom