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
    Paul Newcome ✭✭✭✭✭✭
    edited 08/21/23

    Is this the same question you had here?

    Can this formula be adjusted to account for ranges that extend beyond (2) two months? I have a very similar situation with date ranges spanning many and more than one year. I need the formula tailored to suit looking for a month in a certain year so that it does not pick up the same month in the next year.<\/p>","bodyRaw":"[{\"insert\":\"Can this formula be adjusted to account for ranges that extend beyond (2) two months? I have a very similar situation with date ranges spanning many and more than one year. I need the formula tailored to suit looking for a month in a certain year so that it does not pick up the same month in the next year.\\n\"}]","format":"rich","dateInserted":"2023-08-21T12:55:35+00:00","insertUser":{"userID":165401,"name":"JKL","url":"https:\/\/community.smartsheet.com\/profile\/JKL","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-08-26T20:49:12+00:00","banned":0,"punished":0,"private":false,"label":"✭"},"displayOptions":{"showUserLabel":false,"showCompactUserInfo":true,"showDiscussionLink":false,"showPostLink":false,"showCategoryLink":false,"renderFullContent":false,"expandByDefault":false},"url":"https:\/\/community.smartsheet.com\/discussion\/comment\/391586#Comment_391586","embedType":"quote"}"> https://community.smartsheet.com/discussion/comment/391586#Comment_391586


    https://community.smartsheet.com/discussion/comment/391586#Comment_391586

    10xViz.com

    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.

  • Paul Newcome
    Paul Newcome ✭✭✭✭✭✭

    Ok. Then are you able to provide screenshots for context?

    10xViz.com

    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.

  • 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.

  • 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
    Paul Newcome ✭✭✭✭✭✭

    Which formula are you using? The last formula I provided in the other thread does incorporate the year.

    10xViz.com

    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.

  • 我注意到另一个公式是返回一个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")))))

  • @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.

  • 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

Want to practice working with formulas directly in Smartsheet?

Check out the公式手册模板!
@Jmirata<\/a> <\/p>

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":"

Hi @lcain<\/a> <\/p>

See if this formula will work for you - in a separate column\/cell. <\/p>

It should give you the balance remaining of IN - OUT<\/p>

=SUMIFS([Quantity (gal)]:[Quantity (gal)], [Reason for Opening Container]:[Reason for Opening Container], CONTAINS(\"IN\", @cell)) - SUMIFS([Quantity (gal)]:[Quantity (gal)], [Reason for Opening Container]:[Reason for Opening Container], CONTAINS(\"OUT\", @cell))<\/p>

Hope this helps! (It is not a running total but a grand total)<\/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":110624,"type":"question","name":"Could someone help me with this formula?","excerpt":"We are asking our managers to use SmartSheet to enter information about their employees (via the add form). Be are requiring them to enter the employee ID which has to be 9 digits, but many times they don't enter all the numbers. I read about helper columns to check whether or not the format is accurate and then send an…","snippet":"We are asking our managers to use SmartSheet to enter information about their employees (via the add form). Be are requiring them to enter the employee ID which has to be 9…","categoryID":322,"dateInserted":"2023-09-21T21:53:10+00:00","dateUpdated":"2023-09-22T23:36:16+00:00","dateLastComment":"2023-09-22T13:35:05+00:00","insertUserID":167225,"insertUser":{"userID":167225,"name":"Estephania","title":"People Business Analyst","url":"https:\/\/community.smartsheet.com\/profile\/Estephania","photoUrl":"https:\/\/aws.smartsheet.com\/storageProxy\/image\/images\/u!1!Z-jR2YjcHjQ!nZFQX7DhE3w!USXSZFSV9Ma","dateLastActive":"2023-09-22T19:29:53+00:00","banned":0,"punished":0,"private":false,"label":"✭"},"updateUserID":166028,"lastUserID":167225,"lastUser":{"userID":167225,"name":"Estephania","title":"People Business Analyst","url":"https:\/\/community.smartsheet.com\/profile\/Estephania","photoUrl":"https:\/\/aws.smartsheet.com\/storageProxy\/image\/images\/u!1!Z-jR2YjcHjQ!nZFQX7DhE3w!USXSZFSV9Ma","dateLastActive":"2023-09-22T19:29:53+00:00","banned":0,"punished":0,"private":false,"label":"✭"},"pinned":false,"pinLocation":null,"closed":false,"sink":false,"countComments":2,"countViews":39,"score":null,"hot":3390724095,"url":"https:\/\/community.smartsheet.com\/discussion\/110624\/could-someone-help-me-with-this-formula","canonicalUrl":"https:\/\/community.smartsheet.com\/discussion\/110624\/could-someone-help-me-with-this-formula","format":"Rich","tagIDs":[254],"lastPost":{"discussionID":110624,"commentID":396597,"name":"Re: Could someone help me with this formula?","url":"https:\/\/community.smartsheet.com\/discussion\/comment\/396597#Comment_396597","dateInserted":"2023-09-22T13:35:05+00:00","insertUserID":167225,"insertUser":{"userID":167225,"name":"Estephania","title":"People Business Analyst","url":"https:\/\/community.smartsheet.com\/profile\/Estephania","photoUrl":"https:\/\/aws.smartsheet.com\/storageProxy\/image\/images\/u!1!Z-jR2YjcHjQ!nZFQX7DhE3w!USXSZFSV9Ma","dateLastActive":"2023-09-22T19:29:53+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,"attributes":{"question":{"status":"accepted","dateAccepted":"2023-09-22T13:33:27+00:00","dateAnswered":"2023-09-22T01:23:13+00:00","acceptedAnswers":[{"commentID":396566,"body":"

Hello @Estephania<\/a> <\/p>

You can use a checkbox as your helper column and trigger.<\/p>

The function will be verifying the length of the value and the box will be checked if it is too short and too long, or unchecked if it is correct.<\/p>

We will use the functions LEN and IF.<\/p>

=IF(LEN([EmployeeID]@row)=9,0,1)<\/p>

The checkbox is a variable that only recognizes true or false results. 0 means False (the ID is the correct length) and 1 means True (the ID is incorrect).<\/p>

You can also use =IF(LEN(EmployeeID]@row<>9,1,0) if it's easier for you to recognize. The results will be exactly the same.<\/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":[{"tagID":254,"urlcode":"formulas","name":"Formulas"}]}],"initialPaging":{"nextURL":"https:\/\/community.smartsheet.com\/api\/v2\/discussions?page=2&categoryID=322&includeChildCategories=1&type%5B0%5D=Question&excludeHiddenCategories=1&sort=-hot&limit=3&expand%5B0%5D=all&expand%5B1%5D=-body&expand%5B2%5D=insertUser&expand%5B3%5D=lastUser&status=accepted","prevURL":null,"currentPage":1,"total":10000,"limit":3},"title":"Trending in Formulas and Functions ","subtitle":null,"description":null,"noCheckboxes":true,"containerOptions":[],"discussionOptions":[]}">

Trending in Formulas and Functions