xin gợi ý về hàm ngày tháng

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

vitco88

Thành viên mới
Tham gia
6/7/08
Bài viết
13
Được thích
1
trong mục tiền thuê mình đặt công thức là:
=(DAYS360(D11,E11))*(IF(OR(C11="A01", C11="A02"),300,IF(OR(C11="B01", C11="B02"),100,IF(OR(C11="C01", C11="C02"), 70, 0))))
Nhưng giả sử số phòng rất nhiều, ko dừng ở 01, 02, thì mình phải add công thức như thế nào? ai chỉ giúp mình với.
Chỉ giúp mình công thức tính tiền giảm luôn nha, cảm ơn nhiều!
 

File đính kèm

trong mục tiền thuê mình đặt công thức là:
=(DAYS360(D11,E11))*(IF(OR(C11="A01", C11="A02"),300,IF(OR(C11="B01", C11="B02"),100,IF(OR(C11="C01", C11="C02"), 70, 0))))
Nhưng giả sử số phòng rất nhiều, ko dừng ở 01, 02, thì mình phải add công thức như thế nào? ai chỉ giúp mình với.
Chỉ giúp mình công thức tính tiền giảm luôn nha, cảm ơn nhiều!
Có thể dùng left(c11,1)="A"...
Còn nếu A01, A02 khác A03...thì lập 1 bảng gồm loại phòng và giá, dùng vlookup
 
1. Dựa vào ký tự đầu của số phòng và bảng giá để tính cột Tiền thuê, biết rằng: Tiền thuê = Số ngày * giá
Dựa vào ký tự đầu của số phòng: A, B hoặc C, thì bạn dùng hàm LEFT(số phòng, 1)

Để tính giá phòng, bạn dùng HLOOKUP(), dò cái ký tự tìm được của hàm LEFT() mà tôi nói hồi nãy với cái bảng giá phòng ở trên.

Còn tính số ngày, sao bạn lại dùng DAYS360() ? Sai đó.
Chỉ đơn giản là = Ngày đi - Ngày đến + 1
Hoặc hay hơn tí là = DATEDIF(Ngày đến, Ngày đi, "d")

Này nhé, Khách hàng Nam, ở từ 1/1/1999 đến 10/1/1999, là 10 ngày.
Ở phòng A01, là phòng loại A, có giá thuê phòng là 300 một ngày.
Vậy tiền mà Nam phải trả là 10*300 = 3000
Trong khi công thức của bạn ra có 2700. Sai là do bạn dùng hàm DAYS360().

Khuyên bạn đừng bao giờ dùng hàm này để tính ngày tháng bình thường.

Gợi ý cho bạn nè:
Tiền phải trả = (Ngày đi - Ngày đến + 1) * HLOOKUP(LEFT(Số phòng, 1), Bảng giá phòng, 2, FALSE)

P/S: Làm thẳng dùm bạn cũng được, nhưng như vậy bạn sẽ không giỏi được. Tôi chỉ hướng dẫn vậy thôi, nhé.

 


P/S: Làm thẳng dùm bạn cũng được, nhưng như vậy bạn sẽ không giỏi được. Tôi chỉ hướng dẫn vậy thôi, nhé.

Rất cảm ơn bạn. Mình cũng biết vậy nên chỉ xin gợi ý thôi. Bạn nói giúp mình về ý 2 nếu khách ở trong ngày 15 sẽ đc giảm 50% thì dùng công thức gì?
 
2. Nếu khách ở trong ngày 15 sẽ được giảm giá 50%
Để lấy ra ngày 15, bạn dùng hàm DAY().

Công thức tính giảm giá là:
IF(AND(DAY(Ngày đến)<=15, DAY(Ngày đi)>=15), Tiền thuê * 50%, 0)

Ở đây tôi tạm hiểu rằng: Ở trong ngày 15 có nghĩa là trong số những ngày mà một khách ở, có ngày 15.
Không biết hiểu như vậy có đúng không?
(Ôi! Tiếng Việt! Dịch Anh sang Việt còn dễ hơn là dịch Việt sang Việt!)
 
Lần chỉnh sửa cuối:

Dựa vào ký tự đầu của số phòng: A, B hoặc C, thì bạn dùng hàm LEFT(số phòng, 1)

Để tính giá phòng, bạn dùng HLOOKUP(), dò cái ký tự tìm được của hàm LEFT() mà tôi nói hồi nãy với cái bảng giá phòng ở trên.

Còn tính số ngày, sao bạn lại dùng DAYS360() ? Sai đó.
Chỉ đơn giản là = Ngày đi - Ngày đến + 1
Hoặc hay hơn tí là = DATEDIF(Ngày đến, Ngày đi, "d")

Này nhé, Khách hàng Nam, ở từ 1/1/1999 đến 10/1/1999, là 10 ngày.
Ở phòng A01, là phòng loại A, có giá thuê phòng là 300 một ngày.
Vậy tiền mà Nam phải trả là 10*300 = 3000
Trong khi công thức của bạn ra có 2700. Sai là do bạn dùng hàm DAYS360().

Khuyên bạn đừng bao giờ dùng hàm này để tính ngày tháng bình thường.

Gợi ý cho bạn nè:


P/S: Làm thẳng dùm bạn cũng được, nhưng như vậy bạn sẽ không giỏi được. Tôi chỉ hướng dẫn vậy thôi, nhé.

Xem lại bài này, mình hơi thắc mắc một chút, trong giáo trình của mình thì chỉ đưa ra hàm DAYS360(Ngày bắt đầu, Ngày kết thúc) -> tính tổng số ngày bắt đầu đến ngày kết thúc.
Theo mình hiểu ví dụ khách Nam đến từ ngày 1, đi ngày 10, thì chỉ tính tiền thuê từ ngày 1 đến ngày 9, ngày 10 ko ở đó nữa thì ko tính mới phải, phải ko nhỉ? Giờ mình mới bắt đầu tự học Excel nên ko biết ứng dụng nhiều hàm như các bạn. Chỉ thêm giúp mình nha. Đa tạ!
 
Xem lại bài này, mình hơi thắc mắc một chút, trong giáo trình của mình thì chỉ đưa ra hàm DAYS360(Ngày bắt đầu, Ngày kết thúc) -> tính tổng số ngày bắt đầu đến ngày kết thúc.
Theo mình hiểu ví dụ khách Nam đến từ ngày 1, đi ngày 10, thì chỉ tính tiền thuê từ ngày 1 đến ngày 9, ngày 10 ko ở đó nữa thì ko tính mới phải, phải ko nhỉ? Giờ mình mới bắt đầu tự học Excel nên ko biết ứng dụng nhiều hàm như các bạn. Chỉ thêm giúp mình nha. Đa tạ!
Theo cái bạn hiểu đó thì cũng có lý (nhưng đối với các khách sạn thì phải trả phòng trước 12 giờ trưa, nếu không thì tính thêm 1 ngày à).
Và nếu vậy thì bạn chỉ việc lấy Ngày đi trừ Ngày đến là xong, chẳng cần công thức chi cả.

Về hàm DAYS360(), không biết bạn học giáo trình nào, nhưng tôi thì theo cái này:
Excel Help đã viết:
DAYS360 returns the number of days between two dates based on a 360-day year (twelve 30-day months), which is used in some accounting calculations. Use this function to help compute payments if your accounting system is based on twelve 30-day months.
Hàm DAYS360 trả về số ngày giữa hai ngày dựa theo một năm có 360 ngày (12 tháng, mỗi tháng 30 ngày)...

Ở bài của bạn, người ta có nói là dựa theo như vậy không ? Và trong thực tế đời thường, bạn có tính ngày tháng theo kiểu vậy không?

Bạn nên tìm hiểu thêm về các công thức và hàm (ở dưới chữ ký của tôi). Còn nói thật, các giáo trình tin học A, B gì đó, tôi không tin lắm.
 
Lần chỉnh sửa cuối:
Theo cái bạn hiểu đó thì cũng có lý (nhưng đối với các khách sạn thì phải trả phòng trước 12 giờ trưa, nếu không thì tính thêm 1 ngày à).
Và nếu vậy thì bạn chỉ việc lấy Ngày đi trừ Ngày đến là xong, chẳng cần công thức chi cả.

Về hàm DAYS360(), không biết bạn học giáo trình nào, nhưng tôi thì theo cái này:

Hàm DAYS360 trả về số ngày giữa hai ngày dựa theo một năm có 360 ngày (12 tháng, mỗi tháng 30 ngày)...

Ở bài của bạn, người ta có nói là dựa theo như vậy không ?

Trong giáo trình có phần lý thuyết và thực hành ngay sau đó..
Nghe bạn giải thích thì mình hiểu rồi, thanks!
 
Chỉnh sửa lần cuối bởi điều hành viên:
IF(AND(DAY(Ngày đến)<=15, DAY(Ngày đi)>=15), Tiền thuê * 50%, 0)
Đâu có đơn giản dùng công thức này mà được!
Ví dụ khách đến ngày 16/1/2008 và đi ngày 15/2/2008 thì tính sao?
Bài toán này quy về việc: Tính xem ngày 15 có nằm trong khoảng 2 thời điểm cho trước hay ko?
Câu này e rằng phải đụng đến mãng:
Mã:
=OR(DAY(Ngayden-1+ROW(INDIRECT("1:"&Ngaydi-Ngayden+1)))=15)
Ctrl + Shift + Enter
 
Lần chỉnh sửa cuối:
Mình làm thử bài này mà sao thấy lỗi hoài ah, pàkon giải thích giúp mình tại sao với!
 

File đính kèm

Mình làm thử bài này mà sao thấy lỗi hoài ah, pàkon giải thích giúp mình tại sao với!
Cột tiền thuê cho kết quả đúng đấy! Có điều bạn phải Format chúng thành General thì mới thấy được số tiền
 
Theo mình hiểu thì dùng công thức này ( khách ở trong ngày 15 thì được giảm giá 50% -> hiểu là giảm giá 50% trong ngày 15 )
=IF(AND(DAY(D11)<=15, DAY(E11)>=15),HLOOKUP(LEFT(C11,1),$C$7:$E$8,2,0)*50%,0)

nhưng đây là chỉ tính trong tháng 1 thì đúng, còn trường hợp có sang tháng 2 như bạn ndu96081631 ví dụ thì mình phải tìm hiểu thêm về các hàm đã.
 
nhưng đây là chỉ tính trong tháng 1 thì đúng, còn trường hợp có sang tháng 2 như bạn ndu96081631 ví dụ thì mình phải tìm hiểu thêm về các hàm đã.
Trong file của bạn, bạn cell A19 ghi rằng:
Số tiền thu được từ ngày 01-01-1999 đến 01-05-1999
Có nghĩa là có tính đến chuyện khách ở từ tháng này sang tháng khác
Có điều trong cell A28 lại ghi:
Tính tổng số tiền thu được từ đầu tháng đến ngày 15.
Có nghĩa là bảng này chỉ tính trong tháng
Vậy cái nào đúng?
 
Đâu có đơn giản dùng công thức này mà được!
Ví dụ khách đến ngày 16/1/2008 và đi ngày 15/2/2008 thì tính sao?
Bài toán này quy về việc: Tính xem ngày 15 có nằm trong khoảng 2 thời điểm cho trước hay ko?
Câu này e rằng phải đụng đến mãng:
Mã:
=OR(DAY(Ngayden-1+ROW(INDIRECT("1:"&Ngaydi-Ngayden+1)))=15)
Ctrl + Shift + Enter

Em chỉ nói với bạn ấy trường hợp cụ thể của cái bài tập book3.xls đó thôi.
Chứ còn nếu nói chung trong mọi trường hợp thì lại là chuyện khác.
Bạn ấy mới học Excel thôi, chưa sử dụng nổi công thức mảng đâu.


Còn cái này:
Trong file của bạn, bạn cell A19 ghi rằng:
Số tiền thu được từ ngày 01-01-1999 đến 01-05-1999
Có nghĩa là có tính đến chuyện khách ở từ tháng này sang tháng khác
Có điều trong cell A28 lại ghi:
Tính tổng số tiền thu được từ đầu tháng đến ngày 15.
Có nghĩa là bảng này chỉ tính trong tháng
Vậy cái nào đúng?
Thì ý của bạn này là tính từ ngày 01 đến ngày 05 tháng 1 đó bác à.

Tối hôm qua em đã tranh luận rất nhiều với bạn này về chuyện này.

Mà chủ yếu là do cái đề nó in sai, chứ không phải lỗi của bạn ấy. Trong cái ô đó, "01 - 05 - 1999", người ra đề dùng kiểu mm - dd - yyyy nhưng lại ghi theo kiểu text, do đó gây tác hại vô cùng !

Cả cái dữ liệu ở trong bài, đều dùng format cell là mm/dd/yyyy, nhưng do Excel tự động chuyển đổi theo hệ thống của máy, nên máy của bác, của em, và em nghĩ là đa số, đều thấy là định dạng dd/mm/yyyy, và do đó hiểu lầm cái "01 - 05 - 1999" là ngày 01/05/1999. Thực sử nó là ngày 05/01/1999 !
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom