راجر در حال پیگیری فاکتورها در یک کاربرگ اکسل است. همه فاکتورها باید با تاریخ سررسید 28 ماه ارسال شوند، و راجر به این فکر کرد که آیا راهی وجود دارد که تاریخ را مجبور به "پرش به جلو" به نمونه بعدی 28 ام کند.
تمیزترین راه برای تحمیل تاریخ به جلو، ایجاد فرمولی است که تاریخ را در یک سلول بررسی می کند و سپس آن تاریخ را به تاریخ مورد نظر بعدی، مانند 28th، تحمیل می کند. فرمول زیر برای شروع مناسب است:
=IF(DAY(A1)>28,DATE(YEAR(A1),MONTH(A1)+1,28),
DATE(YEAR(A1),MONTH(A1),28))
به یاد داشته باشید که این یک فرمول واحد است. به یک سلول واحد وارد می شود. این فرمول تاریخ را در سلول A1 بررسی می کند. اگر مقدار DAY تاریخ بزرگتر از 28 باشد، فرمول تاریخی را ساخته و برمی گرداند که برابر با 28 روز بعدی است. اگر کمتر یا مساوی 28 باشد، 28 ماه جاری برگردانده می شود.
با این حال، یک راه کوتاه تر برای ارائه یک فرمول قابل قبول وجود دارد - راهی که به طور کامل از تابع IF خلاص می شود:
=DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>28),28)
این از سال جاری به عنوان سال استفاده می کند، و روز همیشه 28 است. ماه از یک محاسبه بولی استفاده می کند. اگر روز بزرگتر از 28 باشد، آنگاه (Day(A1)>28) TRUE خواهد بود و به صورت 1 محاسبه می شود و در نتیجه 1 به ماه جاری اضافه می شود. اگر کمتر یا مساوی 28 باشد، FALSE خواهد بود و فقط با محاسبه ماه جاری، 0 را محاسبه کنید.
اگر نمی خواهید سختگیرانه به برخی افراد فقط یک روز بدهید (27/4/2012 تاریخ سررسید 2012/4/28 خواهد بود)، می توانید حداقل یک هفته با فرمول به آنها فرصت دهید:
=DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>21),28)
به این ترتیب از 1 تا 21 روز 28 ماه جاری است، اما برای تاریخ های بعدی به 28 ماه بعد خواهد رفت.