Calculate number of days per month within a date range that spans more than one year
I have a schedule that spans (2) calendar years. I want to return the number of days per month included in the range. Since I use this result for billing purposes, I have a column per month and year of the schedule the returns the number of days in that given month/year. I am running into problems once I get to the same month of the following year.
I used the following formula successfully to manage the first 12 months of the schedule; however, when you get to the same month in the following calendar year it fails to recognize the difference between the months of different years:
=IFERROR(VALUE((YEAR([End Date]@row) - YEAR([Start Date]@row)) * IF(AND([End Date]@row - [Start Date]@row < 365, OR(MONTH([End Date]@row) = 8, MONTH([Start Date]@row) = 8)), 0, 31) + IF(AND(OR(MONTH([Start Date]@row) < 8, YEAR([Start Date]@row) < YEAR([End Date]@row)), MONTH([End Date]@row) = 8), DAY([End Date]@row), IF(AND(MONTH([Start Date]@row) = 8, MONTH([End Date]@row) = 8), DAY([End Date]@row) - DAY([Start Date]@row), IF(AND(MONTH([Start Date]@row) < 8, MONTH([End Date]@row) > 8), 31, IF(AND(MONTH([Start Date]@row) = 8, OR(MONTH([End Date]@row) > 8, YEAR([End Date]@row) > YEAR([Start Date]@row))), 31 - DAY([Start Date]@row), ""))))), "")
How can this be modified to add in the year so that as it carries across future months of a different year that it recognizes the difference between a certain month that falls in one year or the other? It seems that an additional condition can be placed to capture if the year is within YEAR("0000") but I am having trouble making it work.
MANY THANKS IN ADVANCE!!
Answers
-
Paul Newcome ✭✭✭✭✭✭
Is this the same question you had here?
https://community.smartsheet.com/discussion/comment/391586#Comment_391586
Come see me at ENGAGE 2023! I have "Happy to help️" buttons!
If you can't find me roaming the floor, I will most likely be at the 10xViz Partner Booth.
-
JKL ✭
@Paul NewcomeYes sir!
-
Paul Newcome ✭✭✭✭✭✭
Ok. Then are you able to provide screenshots for context?
Come see me at ENGAGE 2023! I have "Happy to help️" buttons!
If you can't find me roaming the floor, I will most likely be at the 10xViz Partner Booth.
-
JKL ✭
Hopefully I can explain the issue here a little clearer: This formula cannot differentiate specific years. My sheet has a column for every month/year such as Aug-23, Sept-23, Cot-23, Nov-23, Dec-23, Jan-24 and so on. If you use this formula in Aug-23 and Aug-24, it will return the same value. How do I add a condition on this formula that would help it look for specific years in the same way that it looks for specific months? I know my schedule only spans (2) two years at a time so I can easily update the year range in the same way that I update the month and day specifics of the formula as I apply it to future months.
My sheet is so long it is hard to show a relevant screen shot but if this does not make sense I can make a smaller example and screen shot it.
-
JKL ✭
Another way to explain the aim here:
A formula that returns the number of days in a given month/year that is included within a certain range.
If the date range was 10/05/2023 - 02/03/2024, the target return data would be per below. Each of these results below would be represented in a column named by the Month/Year and the formula can be adjusted in each month to look for that specific month in that specific year. The goal here is to ensure that months return the accurate number of days included in the range based upon the years in the range and the years in the formula.
Oct-23 = 5
Nov-23 = 30
Dec-23 = 31
Jan-24 = 31
Feb-24 = 3
-
Paul Newcome ✭✭✭✭✭✭
Which formula are you using? The last formula I provided in the other thread does incorporate the year.
Come see me at ENGAGE 2023! I have "Happy to help️" buttons!
If you can't find me roaming the floor, I will most likely be at the 10xViz Partner Booth.
-
JKL ✭
我注意到另一个公式是返回一个incorrect amount for the last statement when the Start and End days were within the same month. I made it work with this formula (SD = Start Date, ED = End Date)
=IF(AND(SD@row <= DATE(2023, 12, 1), MONTH(ED@row) = 12), DAY(ED@row), IF(AND(SD@row <= DATE(2023, 12, 1), ED@row >= DATE(2023, 12, 31)), 31, IF(AND(SD@row >= DATE(2023, 12, 1), ED@row <= DATE(2023, 12, 31)), (ED@row - SD@row) + 1, IF(AND([End Date]@row >= DATE(2024, 1, 1), MONTH([Start Date]@row) = 12), 31 + 1 - DAY([Start Date]@row, "0")))))
-
JKL ✭
@Paul NewcomeI now discovered that this formula returns the incorrect date for the following year months.....I guess the initial statement allows it to search for the months in the previous year.
-
JKL ✭
My current sample schedule begins in Aug-23 and ends in Sep-24. I ran into the problem once I hit Aug-24. I was able to fix Aug-24 with this:
=IF(AND(SD@row > DATE(2023, 8, 31), MONTH(ED@row) = 8), DAY(ED@row), IF(AND(SD@row <= DATE(2024, 8, 1), ED@row >= DATE(2024, 8, 31)), 31, IF(AND(SD@row >= DATE(2024, 8, 1), ED@row <= DATE(2024, 8, 31)), (ED@row - SD@row) + 1, IF(AND([End Date]@row >= DATE(2024, 9, 1), MONTH([Start Date]@row) = 8), 31 + 1 - DAY([Start Date]@row, "0")))))
Help Article Resources
Categories
I believe this requires you to change the column type to a contact-like one. <\/p>
Then you should be able to select it in this dropdown. <\/p>
Ryan<\/p>"}]}},"status":{"statusID":3,"name":"Accepted","state":"closed","recordType":"discussion","recordSubType":"question"},"bookmarked":false,"unread":false,"category":{"categoryID":322,"name":"Formulas and Functions","url":"https:\/\/community.smartsheet.com\/categories\/formulas-and-functions","allowedDiscussionTypes":[]},"reactions":[{"tagID":3,"urlcode":"Promote","name":"Promote","class":"Positive","hasReacted":false,"reactionValue":5,"count":0},{"tagID":5,"urlcode":"Insightful","name":"Insightful","class":"Positive","hasReacted":false,"reactionValue":1,"count":0},{"tagID":11,"urlcode":"Up","name":"Vote Up","class":"Positive","hasReacted":false,"reactionValue":1,"count":0},{"tagID":13,"urlcode":"Awesome","name":"Awesome","class":"Positive","hasReacted":false,"reactionValue":1,"count":0}],"tags":[]},{"discussionID":110640,"type":"question","name":"Sum Formula containing keywords?","excerpt":"I'm trying to keep a running sum of the amount of liquid we are holding for our business's transfer log and I am not even sure where to begin! We have to log transfers (IN) and (OUT) and I would like to write a formula to keep up with this if possible. (Adding the amount in rows with IN and subtracting the amount in rows…","snippet":"I'm trying to keep a running sum of the amount of liquid we are holding for our business's transfer log and I am not even sure where to begin! We have to log transfers (IN) and…","categoryID":322,"dateInserted":"2023-09-22T01:44:27+00:00","dateUpdated":null,"dateLastComment":"2023-09-22T12:05:15+00:00","insertUserID":151299,"insertUser":{"userID":151299,"name":"lcain","url":"https:\/\/community.smartsheet.com\/profile\/lcain","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-09-22T12:38:43+00:00","banned":0,"punished":0,"private":false,"label":"✭✭"},"updateUserID":null,"lastUserID":15741,"lastUser":{"userID":15741,"name":"ker9","url":"https:\/\/community.smartsheet.com\/profile\/ker9","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-09-24T18:20:54+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭✭"},"pinned":false,"pinLocation":null,"closed":false,"sink":false,"countComments":1,"countViews":35,"score":null,"hot":3390731982,"url":"https:\/\/community.smartsheet.com\/discussion\/110640\/sum-formula-containing-keywords","canonicalUrl":"https:\/\/community.smartsheet.com\/discussion\/110640\/sum-formula-containing-keywords","format":"Rich","lastPost":{"discussionID":110640,"commentID":396586,"name":"Re: Sum Formula containing keywords?","url":"https:\/\/community.smartsheet.com\/discussion\/comment\/396586#Comment_396586","dateInserted":"2023-09-22T12:05:15+00:00","insertUserID":15741,"insertUser":{"userID":15741,"name":"ker9","url":"https:\/\/community.smartsheet.com\/profile\/ker9","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-09-24T18:20:54+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭✭"}},"breadcrumbs":[{"name":"Home","url":"https:\/\/community.smartsheet.com\/"},{"name":"Get Help","url":"https:\/\/community.smartsheet.com\/categories\/get-help"},{"name":"Formulas and Functions","url":"https:\/\/community.smartsheet.com\/categories\/formulas-and-functions"}],"groupID":null,"statusID":3,"image":{"url":"https:\/\/us.v-cdn.net\/6031209\/uploads\/I6ZQZFEI6SV8\/screenshot.png","urlSrcSet":{"10":"","300":"","800":"","1200":"","1600":""},"alt":"Screenshot.png"},"attributes":{"question":{"status":"accepted","dateAccepted":"2023-09-22T12:09:07+00:00","dateAnswered":"2023-09-22T12:05:15+00:00","acceptedAnswers":[{"commentID":396586,"body":"