I am working with Amazon vendor central and downloading order data in csv format.
The date formats are as follows;
Jan 3, 2022 8:00:00 PM GMT
Please can anyone help me with a formula to convert to dd/mm/yy format?
Thanks
Laura
You can use MID() and FIND() to pull out the data to enter into a DATE(year, month, day) or DATEVALUE() formula then use TEXT(date, "DD/MM/YY") to format it.
The DATEVALUE Function can parse text as a date; but it seems it needs to be formatted "3 Jan 2022" as opposed to "Jan 3, 2022"
I have used an array rather than MID() to pull out the details and the formula for that is:
=LET(date, E3,
values, FILTERXML("<t><s>"&SUBSTITUTE(date, " ","</s><s>")&"</s></t>","//s"),
TEXT(DATEVALUE(SUBSTITUTE(INDEX(values, 2), ",", " ") & INDEX(values, 1) & " " & INDEX(values, 3)), "DD/MM/YY")
)
Related
I'm trying to convert a text string into a date in Notion to build a birthday reminder system in my database.
Bigger picture, I want a database view with the birthdays that are coming up in the next month. Some people I know their actual date of birth, and for others I only know their birthday. I enter the birthdate for the people whose birth year I don't know as the current year.
The filters allow you to select a date relative to the present, but not a date whose anniversary is coming up. So to fix this, I am creating a field that reformats the birthdate as a date in the current year, and filtering based on that.
I successfully built the new date, but it is a text string. In order for the filters to work, it needs to be formatted as a date.
I tried formatDate but that gives me an error.
For example:
formatDate(concat(prop("Birthday"), ", ", prop("thisYear")), "MMMM D YYYY")
Gives error:
Type mismatch concat(prop("Birthday"), ", ", prop("thisYear")) is not a Date.
It appears formatDate only reformats an existing date, it doesn't convert a string into a date. I can't find a function that converts a string into a date. How would one do that?
to convert the date you have in text format into a prop date, you have to start from 01 Jan 1970, this is the date Notion use to refer every single date into ms.
With this formula you will have 01 Jan 1970 from now:
dateAdd(dateSubtract(dateSubtract(dateSubtract(dateSubtract(dateSubtract(now(),
year(now()) - 1970, "years"), month(now()), "months"), date(now()),
"days"), hour(now()), "hours"), minute(now()), "minutes"), 1, "days")
Now you have to add to this date months, year and days you have into your birthday prop.
To do this you simply have to use he dateAdd formula, so you will have:
dateAdd(dateAdd(dateAdd(dateSubtract(dateSubtract(dateSubtract(dateSubtract(dateSubtract(now(),
year(now()) - 1970, "years"), month(now()), "months"), date(now()),
"days"), hour(now()), "hours"), minute(now()), "minutes"),
prop("Giorni"), "days"), prop("Mese") - 1, "months"), prop("Anno") -
1970, "years")
You have to consider that in my example, prop("Giorni"), prop("Mese") and prop("Anno") are already numbers.
If you have them into a text field you first have to extract them with the slice formula and convert them into number with toNumber formula.
I hope I helped you, sorry for my English but I'm not native English speaker.
Bye
So my problem is I have a Date that is defined as General in Excel as this "10 JUL 2021 10:30" I want to make it Excel Date.
kindly have a look at my picture for detailed understanding.
Need any kind of solution to automate this VBA or any formula,
Thanks in advance
If you need VBA to extract Date, please use the next function:
Function TextToDateX(txt As String) As Date
Dim arrD, arrM
arrM = Split("JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC", ",")
arrD = Split(txt, " ")
TextToDateX = DateSerial(CLng(arrD(2)), Application.match(arrD(1), arrM, 0), CLng(arrD(0))) + CVDate(arrD(3))
End Function
It can be tested as:
Sub testTextToDateX()
Dim txt As String, d As Date
txt = "10 JUL 2021 10:30"
d = TextToDateX(txt)
Debug.Print Format(d, "dd/mm/yyyy hh:mm")
End Sub
DateValue is localization related. Microsoft states: "DateValue recognizes the order for month, day, and year according to the Short Date format that you specified for your system". So, it may work or not.
In my case it doesn't...
I just tried using the DateValue() worksheet function, and every worked fine (normal Excel formula, no VBA needed):
=DATEVALUE("07 JUL 2021 10:30")
One thing that might be interesting for you: there exists a cell formatting (dd mmm yyyy hh:mm), which you seem to be using. (When you apply this on any cell, the value inside gets automatically formatted into that kind of date format.)
Edit, based on comment:
In case there's a comma in your date string, remove it first and then apply the DateValue() function:
=DATEVALUE(SUBSTITUTE("07 JUL 2021, 10:30",",",""))
I have a column that has a name date: Friday, December 25, 2015
and I want to convert it to a date format: 12/25/2015 , that way I can perform other date functions.
I have unsuccessfully tried both changing the format directly and using the =DATEVAL() function.
Any direction would be great. thanks
First remove the day names
Ctrl+f and just replace "Friday," or "Saturday," or other days with ""
now your columns should be formatted like
"December 25, 2015"
Now use the dateval function like
=DATEVALUE("December 25, 2015")
Now select date from formatting and you should be good.
With text in A1 use:
=DATEVALUE(MID(A1,FIND(", ",A1,1)+2,9999))
and format as a Date:
I have a string like "Saturday, November 28, 2015 11:59:59 PM GMT-5" in an Excel spreadsheet and would like to remove the Day of the week and Time Zone before importing it to Access using VBA. I tried :
ExcelWorksheet.Cells(1 + counter, nIdCol) = left((ExcelWorksheet.Cells(1 + counter, nIdCol)), Find(" GMT", ExcelWorksheet.Cells(1 + counter, nIdCol) - 1)) "
but found that "Find" is not an Access function.
Any idea to do it?
If you want to do it in Excel, before importing to Access with VBA, you can use this formula to trim them. Note: I'm assuming that each of your strings will have "GMT" at the end to denote the time zone, and will have a , after the day of the week.
If Saturday, November 28, 2015 11:59:59 PM GMT-5 is in A1, use this formula in B1:
=TRIM(MID(A1,SEARCH(", ",A1)+1,SEARCH("GMT",A1)-SEARCH(", ",A1)-2))
Try using the Instr() function. Replace Find("GMT") with
Instr(string:=ExcelWorksheet.Cells(1 + counter, nIdCol).Value, substring:="GMT") - 1
More on the Instr() function: http://www.techonthenet.com/excel/formulas/instr.php
I'm working with a date and time format from the Twitter API. It looks like this:
Tue Nov 26 20:44:15 +0000 2013
Is there a formula to convert this to a format that could be sorted chronologically? I don't need the +0000. Also not concerned about the day of week.
=DATEVALUE(MID(A1,9,3) & MID(A1,4,5) & RIGHT(A1,4)) + TIMEVALUE(MID(A1,11,9))
Then format as you like. As requested you would want a Custom Format of mmm dd HH:mm yyyy
Try this, assuming that your string is in A1:
=DATETIME(MID(A1, 5, 16) & MID(A1, 27, 4))
The two MID formulas cut out the parts of the string you want, namely the month, day, time, and year, but exclude the day of the week and the timezone. This produces a string that the DATETIME function can automatically recognize and covert into a native Excel date format.