Formula - Return month as text from a date cell.

I want to use the formula:

=TEXT(*CELL WITH DATE*,"mmmm")

But this doesn't seem to be a valid formula on Smartsheet.

So if I have a cell with the date "01/01/19" - I want it to show "January" in another cell.

Best Answer

«1

Answers

  • J. Craig Williams
    J. Craig Williams ✭✭✭✭✭✭

    Here's what I do:

    I have a sheet called "Date Tables". In that sheet I have a column for Month Number and another for Month Name.

    1 January

    2 February

    3 March

    4 April

    5 May

    6月6日

    7 July

    8 August

    9 September

    10 October

    11 November

    12月12日

    I use X-Sheet references to get the name from the number.

    Like this:

    =IFERROR(INDEX({Date Tables | Month Name}, MATCH(MONTH(Start@row), {Date Tables | Month Num}, 0)), "")

    You only need to set up the X-Sheet references once per sheet.

    Alternatively, you can build a complicated nested-if statement, but I won't.

    Craig

  • Hey,

    Thanks very much for this, however, wow, its a rather convoluted work-around for what you'd think should be a simple formula. I'll try it out.

  • J. Craig Williams
    J. Craig Williams ✭✭✭✭✭✭

    There are posts on the Community with the nested-if example. That's worse.

    Before X-Sheet references, I would have the data on a hidden area of the sheets.

    Since I just copy/paste the formulas, it only take a minute or two to setup a new sheet for the functionality.

    Craig

  • Hey Craig - I have created my date tables sheet, and am trying to build out my formula to replicate this but am having a hard time dissecting your formula to adjust to my sheet names, etc.

    Can you break it down for me?

    =IFERROR(INDEX({Date Tables | Month Name}, MATCH(MONTH(Start@row), {Date Tables | Month Num}, 0)), "")

    Thank you!

  • J. Craig Williams
    J. Craig Williams ✭✭✭✭✭✭

    Yep.

    =IFERROR(INDEX({Date Tables | Month Name}, MATCH(MONTH(Start@row), {Date Tables | Month Num}, 0)), "")

    MATCH( the month of the date in the [Start] column on this row with the column of data called {Date Tables | Month Num} -- which is a single column of the numbers 1-12.

    The last argument (0) is habit and is looking at an unsorted list.

    This returns the row number (within the table), so 2018-06-06 would search for 6 and find it on the 7th row (since my table has a header)

    INDEX takes that row number (in our example 7) and returns the matching value from the column of data called {Data Tables | Month Name} -- another single column with the text of the month's names.

    I use INDEX(...,MATCH()) in case someone decides to change the order of the columns, put something between them, or otherwise mess up what I might think of as a beautiful table, perfect in form.

    Lastly, I wrap it in IFERROR (returning a blank if one is found) because MONTH() throws an error on blanks.

    See image for what the data looks like

    Craig

    DateTables_Month.png

  • Barry Bowles
    Barry Bowles ✭✭✭✭
    edited 05/05/19

    I agree Smartsheet should have a way to format these cells with the Text value of the dates - not very "smart" when compared to Excel.

    Its hard to avoid some complexity here but I used a different method only because I am more familiar with these functions. I created master "Lookup Sheet" which can be referenced by any sheet in any workspace and just used the simple table of Month number and Month Name same as Craig did and used Vlookup function.

    Smartsheet already allows me to force a date value in the lookup column so I did not need to put an error checking component in other than checking for an empty cell with a simple IF statement but could just as easily use the ERROR function.

    =IF([Date]1 = "", "", VLOOKUP(MONTH([Date]1), {Lookup Sheet1}, 2, false))

    [Date]1 is the cell I am getting the date from to convert to Month name

    {Lookup Sheet1} is the range on the Lookup Sheet

  • =IF(MONTH(cell with date) = 1, "January" ect function works wonders here. Much easier than listed above.

  • So I just created a sheet with primary column having each row with the month number and column two with the month written as text e.g January

    Then in the primary sheet added the following formula as a VLOOKUP and set as a column formula.

    =VLOOKUP(MONTH([date_invoice]@row), {Months Range 1}, 2, false)

    Would be nice if there was a formula but the above is a basic workaround without making it overly complicated given the lack of built in function.

  • Try this

    =如果(Month@row =“12”,12日,如果(月@row = "November",11,IF(Month@row = "October",10,IF(Month@row = "September",9,IF(Month@row = "August",8,IF(Month@row = "July",7,IF(Month@row = "June",6,IF(Month@row = "May",5,IF(Month@row = "Apirl",4,IF(Month@row = "March",3,IF(Month@row = "February",2,IF(Month@row = "January",1,0))))))))))))

  • Or

    =IF(Month@row = 12,"December",IF(Month@row = 11,"November",IF(Month@row = 10,"October",IF(Month@row = 9,"September",IF(Month@row = 8,"August",IF(Month@row = 7,"July",IF(Month@row = 6,"June",IF(Month@row = 5,"May",IF(Month@row = 4,"April",IF(Month@row = 3,"March",IF(Month@row = 2,"February",IF(Month@row = 1,"January",0))))))))))))

  • Cleversheet
    Cleversheet ✭✭✭✭✭✭

    In case you only need to isolate and "numerize" the month from a textual date, you can simply adapt one of the formulas found inthis sheet.

  • The TEXT() function is LOOOONG overdue! Please Smartsheet, an update to some additional handy intrinsic functions should be in the 'Coming Soon' Roadmap - they can't be that difficult to code.

  • Cleversheet
    Cleversheet ✭✭✭✭✭✭

    @Adrian @ Chess

    Is this what you mean? If so, not too hard.

    =TODAY(1) + ""

    yields, for example, “10/10/2018”

    The + "" will convert the formula in the parenthesis () to text.

    Thanks to J Craig Williams in the Smartsheet Community

  • Thanks@Cleversheet, but no.

    I'm after the flexibility that Excel has had since day dot. To format text from a cell however I want.

    Using the following function syntax:

    =TEXT (cell, format)

    So, if cell value is date of 10/10/2018, I can format it like "dddd dd ddd, yyyy" to get "Wed 10 Oct, 2018"

    Or if cell value is 7135551234, I can format it as a phone number "(###) ###-####' to get "(713) 555-1234"

Help Article Resources

Want to practice working with formulas directly in Smartsheet?

Check out the公式手册模板!
You would use something like this:<\/p>

=INDEX(ANCESTORS([Primary Column]@row), 1)<\/p>"},{"commentID":396977,"body":"

=IFFERROR(<\/strong>INDEX(ANCESTORS([Primary Column]@row), 1), [Primary Column]@row)<\/strong><\/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"}]},{"discussionID":110753,"type":"question","name":"If\/Then formula","excerpt":"I need to perform a calculation from 3 columns if criteria in a third column is met. What is the formula? Any help is appreciated!","snippet":"I need to perform a calculation from 3 columns if criteria in a third column is met. What is the formula? Any help is appreciated!","categoryID":322,"dateInserted":"2023-09-25T21:29:24+00:00","dateUpdated":null,"dateLastComment":"2023-09-26T17:35:30+00:00","insertUserID":166870,"insertUser":{"userID":166870,"name":"Kelly Cepicky","title":"Director Operations","url":"https:\/\/community.smartsheet.com\/profile\/Kelly%20Cepicky","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-09-26T17:33:58+00:00","banned":0,"punished":0,"private":false,"label":"✭"},"updateUserID":null,"lastUserID":166870,"lastUser":{"userID":166870,"name":"Kelly Cepicky","title":"Director Operations","url":"https:\/\/community.smartsheet.com\/profile\/Kelly%20Cepicky","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-09-26T17:33:58+00:00","banned":0,"punished":0,"private":false,"label":"✭"},"pinned":false,"pinLocation":null,"closed":false,"sink":false,"countComments":8,"countViews":39,"score":null,"hot":3391431894,"url":"https:\/\/community.smartsheet.com\/discussion\/110753\/if-then-formula","canonicalUrl":"https:\/\/community.smartsheet.com\/discussion\/110753\/if-then-formula","format":"Rich","lastPost":{"discussionID":110753,"commentID":397031,"name":"Re: If\/Then formula","url":"https:\/\/community.smartsheet.com\/discussion\/comment\/397031#Comment_397031","dateInserted":"2023-09-26T17:35:30+00:00","insertUserID":166870,"insertUser":{"userID":166870,"name":"Kelly Cepicky","title":"Director Operations","url":"https:\/\/community.smartsheet.com\/profile\/Kelly%20Cepicky","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-09-26T17:33:58+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-26T17:35:04+00:00","dateAnswered":"2023-09-26T16:29:13+00:00","acceptedAnswers":[{"commentID":397001,"body":"

Totally possible, though the formula might not necessarily be thought of as \"quick\"! This is also only taking months into account, so it's only looking at the month number and disregards the day.<\/p>

If 2023 is your baseline:<\/p>

\n
\n \n \"image.png\"<\/img><\/a>\n <\/div>\n<\/div>\n

Formulas are:<\/p>

2023:<\/p>

=IFERROR(IF(AND(YEAR(Start@row) = 2023, YEAR(Start@row) = YEAR(End@row)), MONTH(End@row) - MONTH(Start@row), IF(AND(YEAR(Start@row) < 2023, YEAR(End@row) = 2023), MONTH(End@row), IF(AND(YEAR(Start@row) < 2023, YEAR(End@row) >= 2023), 12, 0))), \"//m.santa-greenland.com/community/discussion/26826/\")<\/p>

2024:<\/p>

=IFERROR(IF(AND(YEAR(Start@row) = 2024, YEAR(Start@row) = YEAR(End@row)), MONTH(End@row) - MONTH(Start@row), IF(AND(YEAR(Start@row) < 2024, YEAR(End@row) = 2024), MONTH(End@row), IF(AND(YEAR(Start@row) <= 2024, YEAR(End@row) >= 2024), 12, 0))), \"//m.santa-greenland.com/community/discussion/26826/\")<\/p>

2025:<\/p>

=IFERROR(IF(AND(YEAR(Start@row) = 2025, YEAR(Start@row) = YEAR(End@row)), MONTH(End@row) - MONTH(Start@row), IF(AND(YEAR(Start@row) < 2025, YEAR(End@row) = 2025), MONTH(End@row), IF(AND(YEAR(Start@row) < 2025, YEAR(End@row) >= 2025), 12, 0))), \"//m.santa-greenland.com/community/discussion/26826/\")<\/p>

As you can see, if you were going further out then just change the year number to the relevant value.<\/p>

This was a bit hurried, so may not be perfect for your purposes. Otherwise I'd probably recommend doing something with one of the functions similar to NETDAYS for the calculations. Hopefully it points you in the right direction though!<\/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":110746,"type":"question","name":"IF, AND, ISBLANK formula","excerpt":"Here is the scenario: If Cell A is BLANK, the value of Cell B is TEXT, what is the NETDAYS between Cell C and Cell D? =IF(AND(ISBLANK([CellA@row), ([CellB@row = \"All Comments Resolved\")), NETDAYS([CellC]@row, [CellD]@row)) Please help!","snippet":"Here is the scenario: If Cell A is BLANK, the value of Cell B is TEXT, what is the NETDAYS between Cell C and Cell D? =IF(AND(ISBLANK([CellA@row), ([CellB@row = \"All Comments…","categoryID":322,"dateInserted":"2023-09-25T20:25:26+00:00","dateUpdated":null,"dateLastComment":"2023-09-26T15:57:35+00:00","insertUserID":159073,"insertUser":{"userID":159073,"name":"SJTA","url":"https:\/\/community.smartsheet.com\/profile\/SJTA","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-09-26T16:21:22+00:00","banned":0,"punished":0,"private":false,"label":"✭✭"},"updateUserID":null,"lastUserID":151203,"lastUser":{"userID":151203,"name":"Nick Korna","url":"https:\/\/community.smartsheet.com\/profile\/Nick%20Korna","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-09-26T16:17:22+00:00","banned":0,"punished":0,"private":false,"label":"✭✭✭✭✭✭"},"pinned":false,"pinLocation":null,"closed":false,"sink":false,"countComments":7,"countViews":45,"score":null,"hot":3391421581,"url":"https:\/\/community.smartsheet.com\/discussion\/110746\/if-and-isblank-formula","canonicalUrl":"https:\/\/community.smartsheet.com\/discussion\/110746\/if-and-isblank-formula","format":"Rich","tagIDs":[254],"lastPost":{"discussionID":110746,"commentID":396990,"name":"Re: IF, AND, ISBLANK formula","url":"https:\/\/community.smartsheet.com\/discussion\/comment\/396990#Comment_396990","dateInserted":"2023-09-26T15:57:35+00:00","insertUserID":151203,"insertUser":{"userID":151203,"name":"Nick Korna","url":"https:\/\/community.smartsheet.com\/profile\/Nick%20Korna","photoUrl":"https:\/\/us.v-cdn.net\/6031209\/uploads\/defaultavatar\/nWRMFRX6I99I6.jpg","dateLastActive":"2023-09-26T16:17:22+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-26T13:31:22+00:00","dateAnswered":"2023-09-26T10:37:52+00:00","acceptedAnswers":[{"commentID":396905,"body":"

Hi @SJTA<\/a>,<\/p>

If you don't mind what the text value in CellB is:<\/p>

=IF(AND(CellA@row = \"//m.santa-greenland.com/community/discussion/26826/\", ISTEXT(CellB@row)), NETDAYS(CellC@row, CellD@row))<\/p>

If you want CellB to be a particular value:<\/p>

=IF(AND(CellA@row = \"//m.santa-greenland.com/community/discussion/26826/\", CellB@row = \"Your text here\"), NETDAYS(CellC@row, CellD@row))<\/p>

Either of these should work - if you're getting an error, what is it?<\/p>"},{"commentID":396953,"body":"

Your formula will have been given errors due to some missing square brackets on the column references. This should work if you wanted ISBLANK instead:<\/p>

=IF(AND(ISBLANK([CellA]@row), [CellB]@row = \"All Comments Resolved\"), NETDAYS([CellC]@row, [CellD]@row))<\/p>

The missing brackets were on the ends of CellA & CellB, which stopped your formula from functioning properly.<\/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