Tính tổng có điều kiện trong bảng thời gian

Liên hệ QC

bizikata

Thành viên mới
Tham gia
13/10/07
Bài viết
3
Được thích
0
Có đứa em gái làm bài tập nhờ mình làm, mà mình cũng thua luôn nên nhờ mọi người giúp với:

Bài toán đặt ra là một bảng quản lý khách sạn với danh sách khách hàng, mã phòng, ngày đến, ngày đi, cần tính số tiền phải trả dựa theo bảng giá phòng tương ứng với mã phòng, khách vào ở trong ngày 15 hàng tháng thì được giảm giá 30% của ngày đó. Phần này thì mình làm được, chắc là đúng.

Nhưng có một yêu cầu bắt tính tổng số tiền thu được từ ngày 01/01/1999 đến 15/01/1999 thì bó tay. Thầy giáo yêu cầu không được chèn thêm cột, hàng, cùng lắm thì thêm vùng điều kiện cho những hàm như DSUM.

Mình phân tích sơ bộ thì có mấy trường hợp: đến & đi ngoài khoảng thời gian trên, đến trước ngày 01/01 & đi trong khoảng thời gian trên, đến & đi trong khoảng thời gian trên, đến trong khoảng thời gian & đi sau ngày 15/01 và một trường hợp đặc biệt là đến vào ngày 15/01 (vì được giảm giá).

Đã cố gắng thử với một số hàm như DSUM, SUMPRODUCT, công thức mảng... mà không ăn thua. Hy vọng mọi người giúp được.

(Tui nghi thầy giáo cũng chẳng làm được bài này quá --=0)
 

File đính kèm

  • Bai tap.xls
    14.5 KB · Đọc: 238
Lần chỉnh sửa cuối:
Bạn dùng hàm sumproduct sao không được nhỉ. Xem trong file đính kèm có đúng không nha.
 

File đính kèm

  • GPE.xls
    17.5 KB · Đọc: 412
Bạn dùng hàm sumproduct sao không được nhỉ. Xem trong file đính kèm có đúng không nha.

Rất cảm ơn bạn đã giúp đỡ nhưng công thức bạn đưa ra vẫn chưa đáp ứng được yêu cầu đầu bài.

Hàm Sumproduct như bạn dùng chỉ tính tổng số tiền của những khách hàng đã trả có thời gian đến hoặc đi trong khoảng thời gian trên. Tổng số tiền này bao gồm cả số tiền mà khách hàng trả cho những ngày sử dụng ngoài khoảng thời gian trên và bỏ qua những trường hợp khách đến hoặc đi có một mốc thời gian nằm trong khoảng 1/1 - 15/1.

Số tiền đúng mà công thức cần tính được là (70-70*0.3)+(500*100)=549 (khách hàng số 4 ở 1 ngày vào ngày 15 được giảm 30% trên giá phòng 1 ngày là 70, khách hàng số 6 ở 5 ngày với giá phòng là 100)

Công thức đúng phải tính được các trường hợp sau:
(nếu ngày đến = ngày đi thì số ngày ở = 1)

TH1: Ngày đến < 1/1, ngày đi >=1/1 & <=15/1 -> Số tiền = (ngày đi - 1/1) * giá phòng
TH2: Ngày đến < 1/1, ngày đi >15/1 -> Số tiền = 15 * giá phòng
TH3: Ngày đến > 1/1 & <15/1, ngày đi <=15/1 -> Số tiền = (ngày đi - ngày đến) * giá phòng
TH4: Ngày đến >= 15/1, ngày đi >= 15/1 -> Số tiền = 0.3 * giá phòng

Nó lằng nhằng thế thì mình mới đau đầu chứ. Theo mình tính toán thì chắc phải xài thêm hàm MIN, MAX để xác định mốc thời gian nhưng vẫn chưa làm được.
 
Lần chỉnh sửa cuối:
Dùng hàm Sumproduct((Ngay di)<=15/01/1999)*(Tien phai tra))
Chúc bạn thành công
 
Dùng hàm Sumproduct((Ngay di)<=15/01/1999)*(Tien phai tra))
Chúc bạn thành công
Rất cảm ơn bạn đã giúp đỡ nhưng hình như bạn không chịu đọc phân tích đề của mình thì phải //////
Công thức của bạn sẽ cho tổng số tiền phải trả những khách hàng có ngày đi <=15/01, cái mình cần tính là số tiền thu được trong khoảng thời gian chứ không phải là số tiền phải trả. Điều sai thứ hai là công thức trên chỉ quan tâm đến ngày đi <=15/01 mà không quan tâm đến việc khoảng thời gian khách ở có nằm trong khoảng thời gian cần tính không.
 
Lần chỉnh sửa cuối:
Có đứa em gái làm bài tập nhờ mình làm, mà mình cũng thua luôn nên nhờ mọi người giúp với:

Bài toán đặt ra là một bảng quản lý khách sạn với danh sách khách hàng, mã phòng, ngày đến, ngày đi, cần tính số tiền phải trả dựa theo bảng giá phòng tương ứng với mã phòng, khách vào ở trong ngày 15 hàng tháng thì được giảm giá 30% của ngày đó. Phần này thì mình làm được, chắc là đúng.

Nhưng có một yêu cầu bắt tính tổng số tiền thu được từ ngày 01/01/1999 đến 15/01/1999 thì bó tay. Thầy giáo yêu cầu không được chèn thêm cột, hàng, cùng lắm thì thêm vùng điều kiện cho những hàm như DSUM.

Mình phân tích sơ bộ thì có mấy trường hợp: đến & đi ngoài khoảng thời gian trên, đến trước ngày 01/01 & đi trong khoảng thời gian trên, đến & đi trong khoảng thời gian trên, đến trong khoảng thời gian & đi sau ngày 15/01 và một trường hợp đặc biệt là đến vào ngày 15/01 (vì được giảm giá).

Đã cố gắng thử với một số hàm như DSUM, SUMPRODUCT, công thức mảng... mà không ăn thua. Hy vọng mọi người giúp được.

(Tui nghi thầy giáo cũng chẳng làm được bài này quá --=0)
Tôi nghĩ có thể em của bạn hiểu sai đề bài, hoặc truyền đạt sai yêu cầu của đề bài chứ khó có khả năng có một đề bài như thế này.

Lưu ý: Bài giải này chỉ đúng trong điều kiện của bài toán này. Thay đổi yêu cầu đề bài (ví dụ tính tổng số tiền thu được từ ngày 09/01/1999 đến ngày 17/05/1999) thì công thức này sẽ sai.
 

File đính kèm

  • GPE.xls
    18.5 KB · Đọc: 144
Rất cảm ơn bạn đã giúp đỡ nhưng công thức bạn đưa ra vẫn chưa đáp ứng được yêu cầu đầu bài.

Hàm Sumproduct như bạn dùng chỉ tính tổng số tiền của những khách hàng đã trả có thời gian đến hoặc đi trong khoảng thời gian trên. Tổng số tiền này bao gồm cả số tiền mà khách hàng trả cho những ngày sử dụng ngoài khoảng thời gian trên và bỏ qua những trường hợp khách đến hoặc đi có một mốc thời gian nằm trong khoảng 1/1 - 15/1.

Số tiền đúng mà công thức cần tính được là (70-70*0.3)+(500*100)=549 (khách hàng số 4 ở 1 ngày vào ngày 15 được giảm 30% trên giá phòng 1 ngày là 70, khách hàng số 6 ở 5 ngày với giá phòng là 100)

Công thức đúng phải tính được các trường hợp sau:
(nếu ngày đến = ngày đi thì số ngày ở = 1)

TH1: Ngày đến < 1/1, ngày đi >=1/1 & <=15/1 -> Số tiền = (ngày đi - 1/1) * giá phòng
TH2: Ngày đến < 1/1, ngày đi >15/1 -> Số tiền = 15 * giá phòng
TH3: Ngày đến > 1/1 & <15/1, ngày đi <=15/1 -> Số tiền = (ngày đi - ngày đến) * giá phòng
TH4: Ngày đến >= 15/1, ngày đi >= 15/1 -> Số tiền = 0.3 * giá phòng

Nó lằng nhằng thế thì mình mới đau đầu chứ. Theo mình tính toán thì chắc phải xài thêm hàm MIN, MAX để xác định mốc thời gian nhưng vẫn chưa làm được.

Công thức sau sẽ cho ra kết quả như bạn mong muốn
PHP:
=SUMPRODUCT(LOOKUP(LEFT(C9:C14),C5:E6),((C18>=D9:D14)*(C18-D9:D14+1))+((A18-D9:D14+1)*(A18>=D9:D14))-((C18>=E9:E14)*(C18-E9:E14)),IF(DAY(D9:D14)=15,0.7,1))
kết thúc với Ctrl+Shift+Enter
Kèm file
 

File đính kèm

  • bai tap123.xls
    19.5 KB · Đọc: 221
Lần chỉnh sửa cuối:
Bạn làm lằng nhằng quá, mà tính lại có đúng số tiền phải thu đâu?
 
giúp minh tính cai nay, thanks ae rat nhiu
 

File đính kèm

  • Book1.xls
    28 KB · Đọc: 9
Dùng pivottable bạn nhé!
Một số thành viên GPE bây giờ quá dễ dãi, thành viên cũ không làm gương cho thành viên mới, GPE rồi sẽ giống nơi "chít chát", riết rồi đọc bài muốn oải.
Viết thế này cũng trả lời:
"giúp minh tính cai nay, thanks ae rat nhiu"
 
Một số thành viên GPE bây giờ quá dễ dãi, thành viên cũ không làm gương cho thành viên mới, GPE rồi sẽ giống nơi "chít chát", riết rồi đọc bài muốn oải.
Viết thế này cũng trả lời:
"giúp minh tính cai nay, thanks ae rat nhiu"
Dạ em lỡ giúp rồi biết sao bây giờ Bác? Lần sau em để ý kỹ hơn,
Em cảm ơn Bác nhiều!
 
Nhờ mọi người tính tồn quỹ theo thời gian và lấy dữ liệu thu chi ở hai sheet khác nhau, Xin hổ trợ
 

File đính kèm

  • thu chi 2019.xls
    276 KB · Đọc: 7
mình gà excel bạn ơi giup minh với
 
đây bạn ơi
 

File đính kèm

  • thu chi 2019.xls
    276 KB · Đọc: 12
Web KT
Back
Top Bottom