Search code examples
dategoogle-sheetsformattinggoogle-sheets-formulacapitalization

How to capitalise the first letter of the month in a date formula?


I have the =Today() formula to be like this: 10 de julio de 2019

As you can see, the month julio (July) is in minus and I need the first letter upper/capitalized to be like: 10 de Julio de 2019

I know there is =UPPER(text) (for capitalizing all letters) and =Proper(text) (to capitalize the first letter) https://support.google.com/docs/table/25273?hl=en . But these work for text and not for a date even if in the array because it transforms the date to this format:10/7/2019

I tried this:

=PROPER(today())

But it does give me: 10/7/2019

I could post the month alone with the next formula and have that be proper. It works for getting the month alone, but if I use it in different cells to get also the day or the year that messes the space in the spreadsheet (it's a printable report):

=PROPER(text(today(),"MMMM"))

I also tried using:

=ArrayFormula(proper(text(today(),"DDDD")),proper(text(today(),"MMMM")),proper(text(today(),"YYYY")))

And :

=ArrayFormula(proper(text(today(),"DDDD")),(text(today(),"MMMM")),(text(today(),"YYYY")))

But they don't work.

I also used :

=proper(text(today(),"MMMM YYY"))

Which does gives me: Julio 2019, but then the day is missing and I have been unable to add the word 'de' between the month and year to be like : Julio de 2019

In the end, I expect to have the date's month for the date formula return the first letter capitalized to be like: 10 de Julio de 2019 or "DAY", " de", "MMMM", " de", "YYYY"


Solution

  • try this if it works for you:

    =SUBSTITUTE(PROPER(TO_TEXT(TEXT(TODAY(), "dd mmmm yyyy"))), "De", "de")
    

    or do it like this perhaps:

    =SUBSTITUTE(PROPER(TO_TEXT(TEXT(TODAY(), "dd mmmm yyyy"))), " ", " de ")
    

    enter image description here