How do I reformat this to yy/mm/dd in excel? text to column doesn't work.
Select the range, right click, format cells, select custom, type: "yy/mm/dd".
Text dates are not date values.
You should convert the text to date values first.
You can use =DATEVALUE(text) to get the date value from the text date.
However, the weekday should not be in the text. DATEVALUE function does not accept it. So, you have to trim that first.
For example, find the first "," and drop out that with additional two letters.
=DATEVALUE(MID(A1,FIND(",",A1)+2,LEN(A1)))
And, you have to format the date cell to yy/mm/dd.
Then, the result should be like this
Related
i have a column in excel where data is in mix format as some date are in dd/mm/yyyy and some date are in yyyy/dd/mm
i want to convert dates which are only in yyyy/dd/mm --> dd/mm/yyyyhttps://i.stack.imgur.com/5SOV1.png
what is the way i can do this?
i tried concatenate(left()) and concatenate(middle()) and concatenate(right()) and then concate() to combine all this 3 different fields but then it is messing up the true date format i want that is dd/mm/yyyy as some dates are already in dd/mm/yyyy and i made used concatenate() for format yyyy/dd/mm
Let's say you have the input data in text format in column A. In column B you have the output in the equivalent date format (not text format). This is the proper way to handle dates. You asked to convert it to another text format, but I think it is better to have them as an Excel date type.
The following formula does that:
=LET(rng, A1:A4, texts, DROP(REDUCE("", rng, LAMBDA(acc,text,
VSTACK(acc, TEXTSPLIT(text,"/")))),1),
first, INDEX(texts,,1), second, INDEX(texts,,2), third, INDEX(texts,,3),
MAP(first, second, third, LAMBDA(a,b,c, IF(LEN(a)=4, DATE(a, c, b),
DATE(c, b, a))))
)
The formula returns an array, so there is no need to drag down the formula, useful for a large input data set. If you prefer to drag the formula down, then you can use the following formula:
=LET(text, TEXTSPLIT(A1,"/"), first, INDEX(text,1,1), second, INDEX(text,1,2),
third, INDEX(text,1,3), IF(LEN(first) = 4, DATE(first, third, second),
DATE(third, second, first))
)
Note: If you really want the dates in text format, then you can do it by replacing DATE function with: a&"/"&c&"/"&b and c&"/"&b&"/"&a respectively or to encapsulate DATE output with TEXT function, for example, TEXT(DATE(a, c, b), "mm/dd/yyyy") in the format of your preference.
Here is the output:
The previous solution works because we have a way to identify the year as a 4-digit number. If the year has 2-digits, then you need to build a logic to differentiate a year from a month or a day.
Because the data is in Excel date format (internally it is stored as a whole number), then you can format the date in the format of your preference without changing the data. In the screenshot, you see the dates in mm/dd/yyyy format. Having the data as a date type, you can use all Excel functionalities for working with dates. Having dates in text data type will have more limitations.
Here is the output using the UK locale and returning the dates in dd/mm/yyyy, but it is the same output data, just different visualization:
Is there a method to convert these column in data format? (gg/mm/aaaa hh:mm:ss)
DATE : 20220601 >>>> 2022/06/01
HOUR : 3047 >>>>> 00:30:47 (hh:mm:ss)
I have serious problem with column B, i need to convert it in (hh:mm:ss). Someone can help me?
The final result should be "01/06/2022 00:30:47"
If you have Excel 365 you can use this formula:
=LET(HourText,TEXT(B2,"000000"),
DateText, A2,
HourFinal,TIME(LEFT(HourText,2),MID(HourText,3,2),RIGHT(HourText,2)),
DateFinal, DATE(LEFT(DateText,4),MID(DateText,5,2),RIGHT(DateText,2)),
DateFinal + HourFinal)
It first takes the text-hour and the text date.
Text hour is formatted as hhmmss - to have the zeros for hour if missing. Then it is easier to return the true hour.
Adding both values (date + hour (yes this is mathematical addition) returns the date.
You can then format the date as you like, e.g. as dd/mm/yyyy hh:mm.ss
Try-
=TEXTJOIN("/",TRUE,MID(A1,{1,5,7},{4,2,2})) & " " & TEXTJOIN(":",TRUE,MID(RIGHT("00"&B1,6),{1,3,5},{2,2,2}))
For pure date value use below function then use cell format to show your desired date/time format.
=DATEVALUE(TEXTJOIN("/",TRUE,MID(A1,{1,5,7},{4,2,2})))+TIMEVALUE(TEXTJOIN(":",TRUE,MID(RIGHT("00"&B1,6),{1,3,5},{2,2,2})))
Here is an easy alternative solution, using the TEXT() Function with a Custom Formatting for Dates 0000\/00\/00 while for Times 00\:00\:00
• Formula used in cell C2
=TEXT(A2,"0000\/00\/00")+TEXT(B2,"00\:00\:00")
So, the first part of the TEXT() function returns & converts the Numbers into Dates, while the second part returns & converts the Numbers into Times, and as we know that Dates & Times are stored as Numbers in Excel, so the Integer part which represents the Dates and the Decimal which represents Times, when added to together returns a Number with Decimals using the TEXT() Function.
Hence if the cells are not formatted before then please select the cell or range and press CTRL+1 --> Format cells Dialogue Opens --> Number Tab --> Category --> Custom --> and type by removing General as dd/mm/yyyy hh:mm:ss or as per your region it will be gg/mm/aaaa hh:mm:ss
Note: For more inspiration on converting Dates when shown like those numbers, you can refer this link, I have shared a whole lot of alternatives.
CHANGE THE DATE FORMAT
I need to try to convert a basic string i.e. 1st, 2nd, 3rd into a date formatted as dd/mm/yyyy where the mm/yyyy part are this current month and year and the day equals the "number" in the cell.
For example
Cell K5 contains the string "1st"
Formula in cell A5 takes K5 and converts to 01/11/2019
Is there a way to do this?
Thanks for the help in advance
Use this to strip the last two characters:
=DATE(YEAR(TODAY()),MONTH(TODAY()),LEFT(A1,LEN(A1)-2))
Then format as desired. Mine is mm/dd/yyyy
Do you mean like this:
If so, you have to remove letters from selection then excel will convert them into date. For clarity, remove letters, then convert cells to date format.
In one column (E) I have values such as 2014-10-28 19:40:00+00:00. This is obviously date and time.
In my (F) Column I want to just use the date from that, so I've used the formula =LEFT(E:E,10) which worked nicely.
In my (G) Column I want the time, so I used =RIGHT(E:E,14) and it shows up with "19:40:00+00:00" which is what was expected.
Now I am trying to format the cells to have the time show up in a standard format of hh:mm. When I right click and select this format, nothing happens.
Is there a way to format the output of a formula or no?
RIGHT and LEFT return strings, return them to their numeric values using the VALUE formula
=VALUE(LEFT(...))
Should allow you to use custom formats again
If E1 contains:
2014-10-28 19:40:00+00:00
Then in G1 enter:
=MID(E1,12,5)
if your value in E is a date value, then =INT(E1) will extract the date, and =MOD(E1,1) will extract the time
If your value in E is text, then =INT(DATEVALUE(E1)) will extract the date, and =MOD(DATEVALUE(E1),1) will extract the time
Both will be in recognized formats for excel, and can then be formatted in any way you desire
Currently I exported some data, from a database using a query in which each row for a "comment" column begins with a date formatted as MM/DD/YY.
I used the =LEFT(TEXT,8) function to only extract the date but it happens that the some of the dates are formatted inconsistently so we may have some that are M/D/YY where the month or day isn't two digits, this will then include a ';' as a separator since it is less than 8 characters.
Is there a way I can format the text so the ';' is excluded? That way I can sort the data.
I think the DATEVALUE function does most of what you need. It takes in many different date formats (M/D/YYYY, MM/DD/YYYY etc) and converts it to an excel date (i.e. # of days since 1/1/1900).
The formula below says:
If the date is clean then just apply DATEVALUE function
If there is an error, just use the part to the left of the ';'
Assuming 9/1/2013 is Cell A2:
Input Data Sortable Excel Date
---------- -------------------
9/1/2013; =IFERROR(DATEVALUE(A2),DATEVALUE(LEFT(A2,FIND(";",A2)-1)))
09/2/2013; 9/2/2013
10/1/2013; 10/1/2013
10/10/2013 10/10/2013
I've made a live Excel sample here.
Assuming your text looks like this: ;1/;2/13 or 1/2/13;; or ;;1/2/13
You can use substitute like this:
=SUBSTITUTE(A1,";","")
The result will be:
So if date is either the first 6, 7 or 8 characters of A2 you can get the date with this formula
=LOOKUP(10^10,LEFT(A2,{6,7,8})+0)
format result cell in required date format
As the result is a valid date you can sort these as you would sort numbers