Tính tiền thuê khách sạn

Liên hệ QC

File đính kèm

  • excel.xls
    30 KB · Đọc: 134
em muốn tính tiền thuê từ ngày 01 đến 15/01/07 mà không biết dùng hàm nào.các bác giúp e với.e không up lên diễn đàn đc nên up lên mediafire vậy.
http://www.mediafire.com/download.php?hjwmh1yw1ty

Đề bài ra là tính tiền thuê từ ngày 01 đến 15/01/2007, vì thế phải làm thêm cột phụ để tính tiền trong khoảng ngày này (vì ở từ ngày 1 đến ngày 20 thì chỉ tính đến ngày 15 mà thôi), và lấy tổng cột này là OK.
Bạn cần sửa lại cột tiền thuê như sau cho ngắn gọn và chính xác hơn (bài bạn làm câu này sai):
PHP:
G9=VLOOKUP(LEFT(C9);$C$23:$F$25;IF(RIGHT(C9)="1";4;3);0)*IF(E9=F9;1;F9-E9)

To volga: theo mình thì công thức của bạn nếu dùng thì ghi rõ ra luôn như vầy nhé:
PHP:
=SUMPRODUCT(--($E$9:$E$18>=DATE(2007;1;1));--($E$9:$E$18<=DATE(2007;1;15));$I$9:$I$18)
 
Bạn ơi cho mình hỏi tại sao hàm sumproduct lại có dấu -- hả bạn? Nó có tác dụng như thế nào?
 
Mình đã đọc ở đâu đó: Dấu -- trong hàm sumproduct() là để thay thế hàm if() và nên dùng vì hiệu quả và tốc độ tốt hơn hàm if()
 
Bạn tìm bài của chị hanhdung nói về sumproduct nha. còn dấu -- là để cải thiện tốc độ tính toán
 
Dấu -- trong sumproduct là để đổi kiểu từ logical value sang numerical value
(Dấu -- trong hàm text (Left, Mid, Right) là để đổi kiểu từ text sang số)

Để dễ hiểu, các bạn hãy xem:

- Một dấu '-" đồng nghĩa với nhân 1 giá trị hoặc 1 biểu thức với (- 1)

- Hai dấu "--" đồng nghĩa với nhân với 2 lần (-1), nghĩa là nhân với (+1)

Và, Excel hiểu rằng, khi nhân 1 giá trị số dạng text với 1 số bất kỳ, thì cũng như nhân số với số. Ta nhân với +1 là để không thay đổi giá trị ban đầu mà thôi.

Thí dụ:

ab8| 24 |=RIGHT(A3;1)*3
TRUE| 4| =A4*4


Excel cũng hiểu rằng khi nhân 1 giá trị luận lý (True, False) với 1 số bất kỳ, cũng sẽ giống như nhân 1 (True) hoặc 0 (False) với số đó

Vậy trong công thức sau có các dấu "--"

=SUMPRODUCT(--($E$9:$E$18>=DATE(2007;1;1));--($E$9:$E$18<=DATE(2007;1;15));$I$9:$I$18)

hoàn toàn có thể đổi thành các dấu "-" vì nhân (-1) 4 lần cũng bằng nhân (-1) 2 lần

=SUMPRODUCT(-($E$9:$E$18>=DATE(2007;1;1));-($E$9:$E$18<=DATE(2007;1;15));$I$9:$I$18)

hoặc nhân trực tiếp 3 số hạng với nhau (vì 1 trong 3 số hạng đã là số):

=SUMPRODUCT(($E$9:$E$18>=DATE(2007;1;1))*($E$9:$E$18<=DATE(2007;1;15))*$I$9:$I$18)

Ghi chú: nếu bạn thấy 3 dấu "--" tức là 6 lần (-1), thì không được chuyển tất cả thành dấu"-", vì nhân (-1) 3 lần khác với nhân (-1) 6 lần. Chỉ có thể chuyển 1 số chẵn các dấu "--" thành "-" thôi.

Nếu hiểu theo cách này, thì dễ dàng làm việc với excel trong bất kỳ tình huống nào mà bạn thấy cần tính toán với số dạng text hoặc giá trị logic, (kể cả cộng trừ nhân chia).

Còn cái vụ tốc độ, tôi chưa kiểm nghiệm được.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom