giúp e tính cột Giá vé với ạ, em cảm ơn mọi người

Liên hệ QC
RIGHT(C16:E16,2) trả về chuỗi, muốn đổi về số thì +0, --RIGHT hoặc *1,... (Biết rồi mà)
Àh, cái dzụ này là quên:mad::(, chắc là lú lẫn rồi:mad::(. Ừa, giờ thì hiểu tại sao +0 rùi. Cám ơn đã giải thích.:)
Vùng {10,20,31} tăng dần nên dùng MATCH(X,vùng,1) để lấy giá trị. Nếu X rơi vào khoảng nào thì lấy giá trị nhỏ hơn lớn nhất.
upload_2017-11-28_19-4-45.png
Mình chưa hiểu câu “giá trị nhỏ hơn lớn nhất”, bạn vui lòng giải thích dùm mình, mình chân thành cảm ơn. :)
Mình chỉ hiểu là nếu Ngày Bay = 15 thì lấy giá trị trong khoảng 10-20, còn nếu 25 thì lấy giá trị trong khoảng 20-31. Hiểu vậy là đúng hay sai vậy???
Thiệt ngại quá, làm mất thời gian của bebo021999 nhiều quá.:(

Chúc bebo021999 luôn vui vẻ & hạnh phúc.


 

File đính kèm

  • upload_2017-11-28_19-4-3.png
    upload_2017-11-28_19-4-3.png
    10.5 KB · Đọc: 1
MATCH(15,(10,20,31),1) rơi vào khoảng 10,20 nên nó dò giá trị 10, trả về vị trí 1. Nếu là 25, nó tìm thấy 10 và 20 nhỏ hơn, nó dò giá trị 20, ttả về vị trí 2.
 
Chào bạn TheThienChu,
Mình chỉ mới có học hàm Index() kết hợp với 2 hàm Match() thôi, chưa học Index() kết hợp với Int() nên không hiểu công thức cho lắm.
Mình hiểu là Int(Day(D5)/10+1) là lấy giá trị nguyên của Day(D5)/10+1 nhưng mình không hiểu sao bạn lại làm công thức như vậy. Nếu bạn thấy không phiền lòng, xin bạn giải thích công thức dùm mình. Mình chân thành cảm ơn.:)
Mình không hiểu từ khúc dò cột của Index(……,INT(DAY(D5)/10)+1))+-+-+-++-+-+-++-+-+-+

Chúc bạn luôn vui & hạnh phúc.
Kiểm tra lại thấy công thức trước bị lỗi 1 số ngày bạn.
Gửi lại bạn công thức này gọi là sửa sai
Mã:
=INDEX($C$17:$E$21,MATCH(E5,$B$17:$B$21,0),INT((MIN(30,DAY(D5))-1)/10)+1)
Cái đoạn này : INT((MIN(30,DAY(D5))-1)/10)+1
Ví dụ ngày từ 1 : 10, trừ 1 còn 0 : 9, chia 10 lấy phần nguyên có kết quả =0, cộng thêm 1 = 1, = chỉ số cột cần tìm. Từ 11 : 30 tương tự.
Đoạn MIN(30,DAY(D5)) là nếu gặp ngày 31 -> MIN(30,31)=30
Đại khái vậy, khả năng diễn giải hơi bị kém nên bạn xem tạm vậy.

Vui vẻ nhé bạn.
 
Chào các bạn,
Xin xem file đính kèm.
Thật ra mình đã làm xong bài tập này nhưng mình vẫn còn thắc mắc xin các bạn có thể giải đáp dùm mình. Mình chân thành cảm ơn.:)

Bảng 1
View attachment 187330
Bảng 2
View attachment 187328
Câu 1 - Tính Giá Vé K5 cho mỗi chuyến bay, biết rằng Giá Vé được tra trong Bảng 2 dựa vào Tuyến Bay, Ngày Bay ở Bảng 1.
Thật ra câu 1 mình dùng hàm Vlookup kết hợp với hàm If thì kết ra vẫn ra đúng nhưng bình thường nếu dò cả hàng & cột thì mình thích dùng Index() kết hợp với Match() hơn = Index(...,Match(),Match())
Ngặt nỗi, cái Bảng 2 không cho mình dò cột bằng cách dùng hàm Match(). Mình có nghĩ tới dùng cột phụ ở Bảng 1 & sửa lại tên C16:E16 nhưng thấy cột phụ & sửa tên rắc rối quá nên thôi. Các bạn giúp mình lập công thức Index(….,Match(),Match()) cho câu 1 mà không cần sửa tên hay thêm cột phụ nghen. Mình xin chân thành cảm ơn.:)
K5= INDEX($C$17:$E$21,MATCH(E5,$B$17:$B$21,0),MATCH(AND("Ngày"&" "&DAY(D5),"Ngày"&" "&DAY(D5)),$C$16:$E$16,0)) = #VALUE! → Mình biết là công thức này sai ở hàm Match() thứ 2 nhưng xoay sở mãi vẫn không nghĩ ra công thức đúng.
Mình chân thành cảm ơn.:)
Chúc các bạn 1 tuần mới tràn đầy năng lượng & niềm vui.


chị ơi, thầy em dạy làm vlookup bài này được mà chị
F5=IFERROR(VLOOKUP(E5,$B$17:$E$21,MATCH(DAY(D5),{1,11,21},1)+1,0),0)
G5=F5*(5-(C5="VN")*2)%
H5=F5*(WEEKDAY(D5,2)>5)*2%; em thấy cũng đúng mà chị
 
MATCH(15,(10,20,31),1) rơi vào khoảng 10,20 nên nó dò giá trị 10, trả về vị trí 1. Nếu là 25, nó tìm thấy 10 và 20 nhỏ hơn, nó dò giá trị 20, ttả về vị trí 2.
Cám ơn bạn đã bỏ thời gian giải thích cho mình, thiệt là ngại quá.:(

upload_2017-11-29_9-55-35.png
Vậy có nghĩa là nếu Match(15,(10,20,31),1) rơi trong khoảng 10-20 thì Excel sẽ dò giá trị 10 & trả về vị trí 1. Sau đó +1 → sẽ dò ở cột 2, mình hiểu vậy là đúng phải không nhỉ!
Ủa không phải Match(25,(10,20,31),1) rơi trong khoảng 20-31 sao, sao lại 10-20 vậy nhỉ? Mà mình thấy 20 > 10 mà, đâu phải là giá trị nhỏ hơn lớn nhất đâu. Theo cách giải thích trên của bạn thì mình thấy Match(25,(10,20,31),1) rơi trong khoảng 20-31 do đó Excel sẽ dò giá trị 20 & trả về vị trí 2, + 1 → dò ở cột 3.
Ồh, vậy có nghĩa là Excel sẽ không bao giờ dò giá trị 31 hết à? Có lẽ tại Excel chỉ dò “giá trị nhỏ hơn lớn nhất” thôi, nên sẽ không bao giờ dò giá trị 31 đâu hen.
Ừa, giờ thì mình đã hiểu, cám ơn bebo021999:)

Chúc bebo021999 luôn vui.


 
Kiểm tra lại thấy công thức trước bị lỗi 1 số ngày bạn.
Gửi lại bạn công thức này gọi là sửa sai
Mã:
=INDEX($C$17:$E$21,MATCH(E5,$B$17:$B$21,0),INT((MIN(30,DAY(D5))-1)/10)+1)
Cái đoạn này : INT((MIN(30,DAY(D5))-1)/10)+1
Ví dụ ngày từ 1 : 10, trừ 1 còn 0 : 9, chia 10 lấy phần nguyên có kết quả =0, cộng thêm 1 = 1, = chỉ số cột cần tìm. Từ 11 : 30 tương tự.
Đoạn MIN(30,DAY(D5)) là nếu gặp ngày 31 -> MIN(30,31)=30
Đại khái vậy, khả năng diễn giải hơi bị kém nên bạn xem tạm vậy.
Vui vẻ nhé bạn.
Hổng phải khả năng giải thích của bạn kém đâu, mình hiểu hết những gì bạn giải thích đó. Chân thành cảm ơn đã kiên nhẫn giải thích :)
Cám ơn bạn đã bỏ thời gian giải thích cho mình, thiệt là ngại quá.:(
Chúc bạn ngày thiệt vui.

 
Ủa không phải Match(25,(10,20,31),1) rơi trong khoảng 20-31 sao, sao lại 10-20 vậy nhỉ?
Mình không nói 25 rơi vào khoảng 10-20. Nó rơi vào khoảng 20-31, do đó nó nhìn sang bên trái thấy số đầu tiên nhỏ hơn nó là 20.
Cũng như bạn lái xe trên đường Quốc lộ theo hướng Bắc ->Nam, cột cây số tăng dần, khi ngừng lại tại vị trí 1000km+350, đi lùi lại sẽ gặp cột cây số nhỏ hơn lớn nhất là cột 1000km.
 
chị ơi, thầy em dạy làm vlookup bài này được mà chị
F5=IFERROR(VLOOKUP(E5,$B$17:$E$21,MATCH(DAY(D5),{1,11,21},1)+1,0),0)
G5=F5*(5-(C5="VN")*2)%
H5=F5*(WEEKDAY(D5,2)>5)*2%; em thấy cũng đúng mà chị
Chào em gái của chị.
Ừa, chị cũng đồng ý bài này giải quyết bằng hàm Vlookup được, tại chị "tài lanh" thích dùng Index(...,Match(),Match()) mà thôi. Chẳng có lý do gì đặc biệt hết.
upload_2017-11-29_10-10-25.png
Công thức của chị là vầy
K5=VLOOKUP(E5,$B$17:$E$21,IF(AND(DAY(D5)>=1,DAY(D5)<=10),2,IF(AND(DAY(D5)>=11,DAY(D5)<=20),3,4)),0)
Dài "lòng thòng" hơn công thức của thầy em, tại chị còn "chuối" Excel lắm em ạ.
Thường thì nếu chỉ dò cột thì chị dùng Vlookup() còn nếu dò cả hàng & cột thì chị thích dùng Index() kết hợp với 2 hàm Match() hơn. Thói quen thôi mà, đây cũng là 1 thói quen xấu ấy nhỉ cho dù chị biết rằng có nhiều công thức khác ngắn hơn nhiều. Biết sao được, hễ chị mà có thói quen gì rồi thì rất khó đổi, chị không thích thay đổi đâu em ạ.
Chúc em của chị ngày thiệt vui.
p.s. Hôm nay mưa đó, nên trời u ám quá em nhỉ!
 
Chào em gái của chị.
Ừa, chị cũng đồng ý bài này giải quyết bằng hàm Vlookup được, tại chị "tài lanh" thích dùng Index(...,Match(),Match()) mà thôi. Chẳng có lý do gì đặc biệt hết.
View attachment 187414
Công thức của chị là vầy
K5=VLOOKUP(E5,$B$17:$E$21,IF(AND(DAY(D5)>=1,DAY(D5)<=10),2,IF(AND(DAY(D5)>=11,DAY(D5)<=20),3,4)),0)
Dài "lòng thòng" hơn công thức của thầy em, tại chị còn "chuối" Excel lắm em ạ.
Thường thì nếu chỉ dò cột thì chị dùng Vlookup() còn nếu dò cả hàng & cột thì chị thích dùng Index() kết hợp với 2 hàm Match() hơn. Thói quen thôi mà, đây cũng là 1 thói quen xấu ấy nhỉ cho dù chị biết rằng có nhiều công thức khác ngắn hơn nhiều. Biết sao được, hễ chị mà có thói quen gì rồi thì rất khó đổi, chị không thích thay đổi đâu em ạ.
Chúc em của chị ngày thiệt vui.
p.s. Hôm nay mưa đó, nên trời u ám quá em nhỉ!
công thức chị còn bớt đc mà
K5=VLOOKUP(E5,$B$17:$E$21,IF(AND(DAY(D5)>=1,DAY(D5)<=10),2,IF(DAY(D5)<=20,3,4)),0)
L5=IF(C5="VN",3,5)%*K5
M5=IF(OR(WEEKDAY(D5)={1,7}),2,0)%*K5
đc ko chị?
 

File đính kèm

  • Air Fares.xls
    56.5 KB · Đọc: 3
Mình không nói 25 rơi vào khoảng 10-20. Nó rơi vào khoảng 20-31, do đó nó nhìn sang bên trái thấy số đầu tiên nhỏ hơn nó là 20.
Cũng như bạn lái xe trên đường Quốc lộ theo hướng Bắc ->Nam, cột cây số tăng dần, khi ngừng lại tại vị trí 1000km+350, đi lùi lại sẽ gặp cột cây số nhỏ hơn lớn nhất là cột 1000km.
Ốh ồh, giờ đọc lại bài của bạn thì mới hiểu ý bạn, thì ra ý bạn là cả 10 & 20 đều nhỏ hơn 25 chứ không phải ý bạn là 25 rơi trong khoảng 10-20.
Mình hiểu sai ý bạn rùi. Làm mất thời gian của bạn vô ích quá nhể. :(
Cám ơn lắm sự kiên nhẫn của bạn.:)
Chúc bạn luôn vui.
 
Mướp quá. Bỏ AND bên trong đi:
IF(DAY<=10,2,IF(DAY<=20,3,4))
Ối giời ơi, “sấu hổ” quá!:(
Ừa, giờ ngẫm nghĩ lại thì mới thấy là Day(D5) luôn luôn ≠ 0 .
Cái công thức của mình nó dư điều kiện. Cần gì đặt ĐK AND(DAY(D5)>=1,DAY(D5)<=10), cứ khoanh vùng đặt ĐK DAY(D5)<=10 thì có phải đã gọn hơn không!
Đúng là “lúa” thiệt hen.


 
công thức chị còn bớt đc mà
K5=VLOOKUP(E5,$B$17:$E$21,IF(AND(DAY(D5)>=1,DAY(D5)<=10),2,IF(DAY(D5)<=20,3,4)),0)
L5=IF(C5="VN",3,5)%*K5
M5=IF(OR(WEEKDAY(D5)={1,7}),2,0)%*K5
đc ko chị?
Thanks em gái của chị.:)
Công thức của chị là vầy
L5=IF(C5="VN",K5*3%,5%*K5)
M5=IF(OR(WEEKDAY(D5)=1,WEEKDAY(D5)=7),2%*K5,0)
Vì chị chưa học công thức Mảng nên tránh dùng mảng. Với lại chị không có thói quen rút thừa số chung (thói quen xấu quá em nhỉ!:() nên cứ để công thức dài lê thế như ấy. Đơn giản là vậy!
 
Thanks em gái của chị.:)
Công thức của chị là vầy
L5=IF(C5="VN",K5*3%,5%*K5)
M5=IF(OR(WEEKDAY(D5)=1,WEEKDAY(D5)=7),2%*K5,0)
Vì chị chưa học công thức Mảng nên tránh dùng mảng. Với lại chị không có thói quen rút thừa số chung (thói quen xấu quá em nhỉ!:() nên cứ để công thức dài lê thế như ấy. Đơn giản là vậy!
thầy em nói học thì phải chắc, phải dò đi dò lại, làm nhiều cách so sánh, cho thay đổi nhiều ngày vô, từ ngày 1 đến 31 mới biết đúng sai để mà biết tránh, mới tốt
 
thầy em nói học thì phải chắc, phải dò đi dò lại, làm nhiều cách so sánh, cho thay đổi nhiều ngày vô, từ ngày 1 đến 31 mới biết đúng sai để mà biết tránh, mới tốt
Cha cha, hôm nay em gái chị mượn lời thầy “dạy” lại chị rồi hen. Just kidding!:D
Thấy em lấy thầy ra “dọa” nên chị “sợ” quá, kiểm tra lại cái file, hình như là thầy em nói đúng hay sao ấy nhỉ.
O8= INDEX($C$17:$E$21,MATCH(E8,$B$17:$B$21,0),IFERROR(MATCH(DAY(D8),INDEX(RIGHT($C$16:$E$16,2)+0,),1)+1,1))
→ Tại sao Excel nó “hư” thế nhỉ, sao lại không ra kết quả đúng thế???:mad:
upload_2017-11-29_11-58-43.png
upload_2017-11-29_12-4-21.png
Đã giúp người thì giúp cho trót em ạ, sẵn em hỏi thầy em dùm chị tại sao O8=#REF!, bị là não của chị nó đang đi du lịch em ạ, chưa về, nên nghĩ ngợi mãi vẫn không hiểu tại sao? Không lẽ Day(D8)=31 thì Excel không dò được à? Sao thế nhỉ? Đã “dặn dò” Excel là trong vùng 20-31 thì phải dò cột 3 mà sao nó lại không nghe lời thế nhỉ?
Yêu em của chị nhiều lắm lắm. Mau ăn chóng lớn nghen em để còn dạy Excel cho chị nữa chứ.:D

 
Hôm nay là ngày "quốc tế soi".
L5=K5*IF(C5="VN",3%,5%)
M5=IF(WEEKDAY(D5,2)>5,2%*K5,0)
WEEKDAY(...2) trả T7 và CN thành 6 và 7 nên dùng một ĐK > 5 là đủ
Thấy mấy công thức của bebo021999 nó gọn hơn của mình nhiều ấy nhỉ. Đúng là cao thủ thì nói chuyện với Excel cũng dùng "ngôn ngữ" cao sang hơn 2 lúa như mình ấy nhỉ.

Ừa, mình hiểu là Weekday(...,2)>5 thì chỉ tính ngày thứ 7 & CN thôi. Cám ơn đã chỉ cho mình :)
Đối với cuộc đời mình, ngày nào cũng là ngày "quốc tế soi" hết, quen rùi. Nhưng mà soi để giúp mình chứ đừng soi vì ghét mình nghen. Chân thành cảm ơn:)
 
Đối với cuộc đời mình, ngày nào cũng là ngày "quốc tế soi" hết, quen rùi. Nhưng mà soi để giúp mình chứ đừng soi vì ghét mình nghen. Chân thành cảm ơn:)
Ghét thì đã chẳng soi. Mà đã soi thì kiểu gì chẳng ra ghét. Mà đã có ghét thì phải soi ra cho hết ghét.
Khi lập công thức xong, ngoài tính chính xác ra, cần đánh giá lại:
- Tốc độ
- Các yếu tố lặp đi lặp lại trong công thức : AND < hơn, AND > hơn, các địa chỉ lặp đi lặp lại quá nhiều lần, quá nhiều hàm IF, .v.v...
để tìm cách rút gọn.
 
Ghét thì đã chẳng soi. Mà đã soi thì kiểu gì chẳng ra ghét. Mà đã có ghét thì phải soi ra cho hết ghét.
Ối giời ơi! Chỉ có 1 chữ soi thôi mà đằng ấy tuôn 1 "tràng tình cảm" ra luôn. Vậy đằng ấy đã soi ra chỗ ghét của tớ chưa, soi ra chỗ ghét rồi thì có soi cho hết ghét chưa vậy? Vậy rốt cuộc là đằng ấy ghét hay không ghét tớ đây? Tớ tưởng là chỉ có bọn tóc dài như bọn tớ mới phức tạp thế chứ, đằng ấy cũng phức tạp quá nhỉ?:p
Khi lập công thức xong, ngoài tính chính xác ra, cần đánh giá lại:
- Tốc độ
- Các yếu tố lặp đi lặp lại trong công thức : AND < hơn, AND > hơn, các địa chỉ lặp đi lặp lại quá nhiều lần, quá nhiều hàm IF, .v.v...
để tìm cách rút gọn.
Ừa, tớ cũng biết là công thức của tớ nó luộm thuộm, để từ từ tớ sửa lại thói quen xấu ấy.
Mà tớ tính hết rùi, đợi vài năm nữa khi khoa học tiến bộ thì tớ đi cấy con chip Excel vô não tớ luôn, khỏi suy nghĩ gì hết cho mất công, muốn công thức nào là cứ nhấn nút cho con chip nó tự giải quyết mình ên nó, xong xuôi rồi báo cáo lại với tớ. Vậy là khỏe, mỗi ngày cứ nằm nhắm mắt rung đùi mà vẫn giỏi Excel, ngon lành chưa!:p

Chúc đằng ấy 1 buổi chiều vui vẻ.

p.s. Trời hết mưa rồi đó, mà sao còn u ám thế nhỉ!


 
Web KT

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

Back
Top Bottom