Hàm Vlookup kết hợp với nhiều điều kiện (1 người xem)

  • Thread starter Thread starter cao chi
  • Ngày gửi Ngày gửi

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

cao chi

Thành viên mới
Tham gia
9/7/11
Bài viết
30
Được thích
12
Mọi người giúp e vấn đề này với.
Yêu cầu tại cột "tình hình hs" là thể hiện tình trạng gần với ngày tháng hiện tại nhất của học sinh có thể hiện trong 2 sheet "bảo lưu" và "nghỉ"
 

File đính kèm

bạn thử công thức sau
K4=IF(COUNTIF(MaHSBaoLuu;C4)>0;"Bảo Lưu";IF(COUNTIF(MaHsNghi;C4)>0;"Nghỉ";""))

với name MaHSBaoLuu=OFFSET(baoluu!$B$7;0;0;COUNT(baoluu!$B:$B))
name MaHSNghi=OFFSET(nghi!$B$7;0;0;COUNT(nghi!$B:$B))

nếu hs trên vừa nghĩ vừa bảo lưu thì cthức này sai
 
Làm như bạn thì ko được rồi bạn ơi.
VÍ dụ như: hs A ngày 17/02 - bảo lưu
ngày 01/03 - đi học lại
ngày 05/04 - nghỉ

=> giả sử tháng 4 là tháng hiện tại => cột K4 "nghỉ"
nhưng đến
ngày 15/09 - đi học lại
=> tình trạng thể hiện ở cột K này sẽ là "đang học"

tên hs này có cả 2 các sheet
 
Với yêu cầu bài đầu (#1) và dữ liệu bạn đưa lên thì đố ai mà làm được.
Một mớ điều kiện, bạn chỉ nói 1 câu ngắn ngủn "thể hiện tình trạng gần với ngày tháng hiện tại nhất" ???
Ví dụ mã số HS
201208032 Quang Anh: Ngày bảo lưu 25/04/2012, ngày nghỉ 30/04/2012, ngày kết thúc khóa 15/09/2012. Có ngày nghỉ mà không có ngày đi học lại? Ngày hiện tại là ngày nào?
Bạn nói giả sử tháng 4 là tháng hiện tại, thế người ta làm xong công thức cho bạn rồi bạn lại "giả sử" tiếp à?
Hiện tại là 23/03/2013, không phải "giả sử", giả thiết gì cả. Đã đưa giữ liệu lên thì nói cho rõ ràng vào.
 
Lần chỉnh sửa cuối:
Với yêu cầu bài đầu (#1) và dữ liệu bạn đưa lên thì đố ai mà làm được.
Một mớ điều kiện, bạn chỉ nói 1 câu ngắn ngủn "thể hiện tình trạng gần với ngày tháng hiện tại nhất" ???
Ví dụ mã số HS
201208032 Quang Anh: Ngày bảo lưu 25/04/2012, ngày nghỉ 30/04/2012, ngày kết thúc khóa 15/09/2012. Có ngày nghỉ mà không có ngày đi học lại? Ngày hiện tại là ngày nào?
Bạn nói giả sử tháng 4 là tháng hiện tại, thế người ta làm xong công thức cho bạn rồi bạn lại "giả sử" tiếp à?
Hiện tại là 23/03/2013, không phải "giả sử", giả thiết gì cả. Đã đưa giữ liệu lên thì nói cho rõ ràng vào.
Tháng hiện tại là thời gian nhập dữ liệu gần nhất. ở đây là ngày 30/04
Ví dụ : Quang Anh bắt đầu bảo lưu từ ngày 25/04, chưa đi học lại nhưng đến ngày 30/04 thì báo nghỉ luôn => tình trạng thể hiện ở cột K sheet data lúc này là "nghỉ"
Phần giả sử là mình nếu đến ngày 15/09 Quang Anh đi học lại thì mới nhập ngày đi học lại vào => lúc này tình trạng sẽ là "đi học", còn ko thì vẫn là "nghỉ"
Mình nghĩ bạn nên đọc kĩ hơn 1 chút
 
Tháng hiện tại là thời gian nhập dữ liệu gần nhất. ở đây là ngày 30/04
Ví dụ : Quang Anh bắt đầu bảo lưu từ ngày 25/04, chưa đi học lại nhưng đến ngày 30/04 thì báo nghỉ luôn => tình trạng thể hiện ở cột K sheet data lúc này là "nghỉ"
Phần giả sử là mình nếu đến ngày 15/09 Quang Anh đi học lại thì mới nhập ngày đi học lại vào => lúc này tình trạng sẽ là "đi học", còn ko thì vẫn là "nghỉ"
Mình nghĩ bạn nên đọc kĩ hơn 1 chút
Bạn xem lại bài 1 bạn đã ghi những gì? Sao không nói rõ trong bài 1, đến lúc có người sửa giúp bạn rồi mới "giả sử"? Sau khi có người làm công thức cho bạn rồi bạn giả sử tiếp nữa không?
Nếu đang là ngày 30/04, nếu có người xin bảo lưu vào 15/05, chẳng lẽ đến ngày 15/05 bạn mới nhập liệu? Ngày đưa vào nhập liệu gần nhất không phải là ngày hiện tại (ngày làm chuẩn để so sánh).
Theo ví dụ #5: có nghĩa là chừng nào có người đến hạn bảo lưu thì nhập, đến ngày xin nghỉ thì nhập?
Ai sẽ hiểu cho bạn ngày hiện tại là 30/04? Bạn nói ở đâu? Trong dữ liệu bạn có ghi ngày kết thúc khóa 15/09, nếu hiểu đây là ngày gần nhất cũng được vậy?
 
Bạn xem lại bài 1 bạn đã ghi những gì? Sao không nói rõ trong bài 1, đến lúc có người sửa giúp bạn rồi mới "giả sử"? Sau khi có người làm công thức cho bạn rồi bạn giả sử tiếp nữa không?
Nếu đang là ngày 30/04, nếu có người xin bảo lưu vào 15/05, chẳng lẽ đến ngày 15/05 bạn mới nhập liệu? Ngày đưa vào nhập liệu gần nhất không phải là ngày hiện tại (ngày làm chuẩn để so sánh).
Theo ví dụ #5: có nghĩa là chừng nào có người đến hạn bảo lưu thì nhập, đến ngày xin nghỉ thì nhập?
Ai sẽ hiểu cho bạn ngày hiện tại là 30/04? Bạn nói ở đâu? Trong dữ liệu bạn có ghi ngày kết thúc khóa 15/09, nếu hiểu đây là ngày gần nhất cũng được vậy?
Nhìn cái avata nếu là bạn thi bạn cũng đẹp trai mà sao nóng tính quá zậy
Thì đúng là chừng nào có người báo bảo lưu thì nhập, báo đi học lại thì nhập, báo nghỉ thì nhập....chừng nào báo có phát sinh thì mới nhập. Thì đúng là ngày nhập liệu gần nhất ko phải là ngày hiện tại nên mình mới giả sử
Theo như #1 & #5 mình nói, nếu như ngày kết thúc khóa 15/09 là ngày gần nhất như bạn hiểu đi thì tình trạng của Quang Anh từ 30/04 đến 15/09 vẫn là "nghỉ".
Trong khoảng thời gian từ ngày 25-> ngày 30 thì tình trạng của hs này vẫn là bảo lưu.
 
Name ngày bảo lưu (ngaybl):
Mã:
=LOOKUP(2,1/(baoluu!$B$7:$B$18=data!$C4),baoluu!$F$7:$F$18)
Name bảo lưu, học lại (blhl):
Mã:
=LOOKUP(2,1/(baoluu!$B$7:$B$18=data!$C4),baoluu!$H$7:$H$18)
Name ngày nghỉ (ngayn):
Mã:
=LOOKUP(2,1/(nghi!$B$7:$B$18=data!$C4),nghi!$E$7:$E$18)
Name nghỉ, học lại (nhl):
Mã:
=LOOKUP(2,1/(nghi!$B$7:$B$18=data!$C4),nghi!$G$7:$G$18)
Name ngày hiện tại, lấy ngày đưa vào gần nhất (ngayht):
Mã:
=MAX(baoluu!$F$7:$F$18,baoluu!$H$7:$H$18,nghi!$E$7:$E$18,nghi!$G$7:$G$19)
Công thức cột K:
Mã:
=IF(AND(ISNA(ngaybl),ISNA(ngayn)),"Đang học",IF(ISNA(ngaybl),IF(nhl<ngayn,"Nghỉ","Đang học"),IF(blhl<ngaybl,"Bảo lưu","Đang học")))
Cứ test thử, không đúng thì thôi vậy.
 

File đính kèm

Cảm ơn bạn leonguyenz rất rất là nhiều, hjhj, code tại công thức K của bạn làm cho mình vẫn còn thiếu 1 chút vì ở dữ liệu cho thấy Quang Anh bảo lưu ngày 25/04 -> đến ngày 30/4 là báo nghỉ rồi => tình trạng của người này sẽ là nghỉ chứ ko phải bảo lưu như thể hiện trên kết quả. Mình đã sửa lại chút ít
bạn xem nhé

code cột K:
=IF(AND(ISNA(ngaybl),ISNA(ngayn))," ",IF(ISNA(ngaybl),IF(nhl<ngayn,"Nghỉ"," "),IF(ISNA(ngayn),IF(blhl<ngaybl,"BL",""),IF(ngayn<blhl<ngaybl,"Bảo lưu",IF(MAX(ngaybl)<ngayn,"nghi","")))))
 

File đính kèm

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

Back
Top Bottom