không hiểu anhtuan ơi!anhtuan1066 đã viết:=IF(day(DATE(A1,3,0))-28,"Năm nhuận","")
không hiểu anhtuan ơi!anhtuan1066 đã viết:=IF(day(DATE(A1,3,0))-28,"Năm nhuận","")
=IF(DAY(DATE(A1,3,0))-28,"Năm nhuận","")
ở đây DAY(DATE(A1,3,0))-28 trả về 0 hoặc 1; Mà excel lun xem 0 là tường ứng vơi False, còn 1 (hay các số khác 0) là True -> nó là Logical Expression rùiptm0412 đã viết:Hỏi thêm:
Như vậy DAY(DATE(A1,3,0))-28 đã phải là Logical Expression chưa?
Tôi có một thắc mắc chưa rõ lắm về cách tính tuần, thế này nhé: nếu tuần bắt đầu từ thứ hai thì có phải nếu trong một tháng có 4 ngày thứ hai thì tháng đó có 4 tuần phải không, và nếu tháng đó có 5 thứ hai (mặc dù thứ 2 là ngày cuối tháng) thì tháng đó có được tính là 5 tuần không??anhtuan1066 đã viết:Còn số tuần trong năm thì sao nhỉ?
Công thức để tính số tuần trong năm:anhtuan1066 đã viết:Còn số tuần trong năm thì sao nhỉ?
=INT((DATE(A1,12,31)-DATE(A1,1,1)-WEEKDAY(DATE(A1,12,31),2)+WEEKDAY(DATE(A1,1,1),2)+8)/7)
Công thức này rất hay, hôm qua mình cũng đi theo hướng này nhưng mãi không ra, giờ đọc bài của bạn mình đã hiểu ra vấn đề.anhtuan1066 đã viết:Kiễm tra sơ bộ thấy chính xác lắm, cãm ơn bạn!
Còn tôi thì xài cái này:
MếnMã:=INT((DATE(A1,12,31)-DATE(A1,1,1)-WEEKDAY(DATE(A1,12,31),2)+WEEKDAY(DATE(A1,1,1),2)+8)/7)
ANH TUẤN
=(DATE(A1,12,31)-WEEKDAY(DATE(A1,12,31),2)-DATE(A1,1,1)+WEEKDAY(DATE(A1,1,1),2))/7+1
ThuNghi đã viết:Tiện đây xin hỏi các bạn 1 vấn đề về ngày tháng như sau:
...
30/03/2008....30/09/2008
31/03/2008....30/09/2008
---
31/10/2008....30/04/2008 (không thể 31/04...)
Nghĩa là kỳ hạn thanh toán là ngày như ngày đầu sau 6 tháng nhưng nếu ngày 31/03/2008 - thì không thể 31/09/2008 mà phải 30/09/2008
Nhờ các bạn giúp tôi công thức trên, nếu có thể dùng VBA.
Xin cám ơn!
ptm0412 đã viết:Không cần VBA đầu, dùng hàm edate() là được.
Cấu trúc: EDATE(date,number of month)
--> B1=EDATE(A1,6)
Vì là hàm ngày tháng của Excel nên loại bỏ được vụ ngày 30, 31, 28, và 29 /2 của cả năm nhuận. Cái này mình giới thiệu rồi mà!
=DATE(YEAR(A1)+IF(MONTH(A1)+6>12,1,0),MONTH(A1)+IF(MONTH(A1)+6>12,-6,6),MIN(DAY(A1),DAY(DATE(YEAR(A1)+IF(MONTH(A1)+6>12,1,0),1+MONTH(A1)+IF(MONTH(A1)+6>12,-6,6),0))))
ThuNghi dùng công thức này xem (với A1 là ngày đầu)ThuNghi đã viết:Tiện đây xin hỏi các bạn 1 vấn đề về ngày tháng như sau:
- Giả sử hôm nay là 01/01/2008 sau 6 tháng (kỳ hạn) là 01/07/2008
- Tương tự:
02/01/2008 sau 6 tháng (kỳ hạn) là 02/07/2008
31/01/2008 sau 6 tháng (kỳ hạn) là 31/07/2008
....
28/02/2008 sau 6 tháng (kỳ hạn) là 28/08/2008
29/02/2008 sau 6 tháng (kỳ hạn) là 29/08/2008
01/03/2008 sau 6 tháng (kỳ hạn) là 01/09/2008
...
30/03/2008....30/09/2008
31/03/2008....30/09/2008
---
31/10/2008....30/04/2008 (không thể 31/04...)
Nghĩa là kỳ hạn thanh toán là ngày như ngày đầu sau 6 tháng nhưng nếu ngày 31/03/2008 - thì không thể 31/09/2008 mà phải 30/09/2008
Nhờ các bạn giúp tôi công thức trên, nếu có thể dùng VBA.
Xin cám ơn!
Nhưng trường hợp này chưa OK. Nếu:phamduylong đã viết:ThuNghi dùng công thức này xem (với A1 là ngày đầu)
=IF(DAY(DATE(YEAR(A1);MONTH(A1)+6;DAY(A1)))<>DAY(A1);DATE(YEAR(A1);MONTH(A1)+6;DAY(A1)-1);DATE(YEAR(A1);MONTH(A1)+6;DAY(A1)))
=DATE(YEAR(A1),MONTH(A1)+A2,MIN(DAY(DATE(YEAR(A1),MONTH(A1)+A2+1,0)),DAY(A1)))
Tôi mới chỉ test 2008 thấy OK, trước mắt là vậy. Test sau. Cám ơn AT1066 và các bạn nhiều.anhtuan1066 đã viết:Thử cái này xem có chính xác ko? (tôi mới thử sơ sơ)
Với A1 là ngày tháng năm, A2 là kỳ hạnMã:=DATE(YEAR(A1),MONTH(A1)+A2,MIN(DAY(DATE(YEAR(A1),MONTH(A1)+A2+1,0)),DAY(A1)))
ANH TUẤN