I have a date in the following format:
Column A: Day (number form)
Column B: Month (number form)
Column C: Year (yy number form, in my case just 15 and 16 for 2015 and 2016)
Column D: Hour (number form, 0 through 23)
Column E: Minute (number form)
How can I convert this into a timestamp (namely, a timestamp representing number of minutes)? I don't see any kind of "dateserial" type function in Excel (at least on my Mac version).
You can do it with this formula:
=DATE(2000+C1,B1,A1)+TIME(D1,E1,0)
This will get you a number around 42000, you will need to format it in the number format you want.
Then if you want to time difference between two rows you would simply use:
=F2-F1
And format the cell with a custom format of [hh]:mm:ss
Note the method that excel stores date/time is:
Dates are whole numbers for each day since Jan 1st 1900 so we are currently in the 42000's.
Time is a decimal based on 24 hours being 1.
So both together my current time is 42531.63956 or 6/10/2015 3:21:33 or so, when the mask is applied.
Excel uses this method so we can do math on the values. The method on how the output is displayed depends on the format of the cell in which the number resides.
Something like this should work:
=DATE(CONCATENATE("20",C1),B1,A1) + TIME(D1,E1,0)
Related
Is there a way for me to format a column where the values I enter in the format HH:MM (elapsed time, not datetime) are converted to hours in decimal, preferably in the same column via some custom formula?
For example,
HH:MM
H (Decimal)
07:39
7.65
02:15
2.25
06:00
6
At the moment, I manually calculate the equivalent and enter them into the column but it would be nice to directly copy a timestamp and have the column automatically format it but I couldn't see an option for this in Date/Time formatting settings.
Simply multiply your hh:mm durations by 24, ensuring that the cells where you want the decimal hours returned are formatted as 'Number'. Or to force formatting as a number using a formula: =text(duration_cell*24,"#.##") where duration_cell is a cell with the duration in hh:mm format.
There is no way to do that I know of because Excel stores times/dates as floats. Each 24 hour period equals 1, therefore 7:33 equals .31458 Therefore, you won't be able to do this without a helper column.
You can do this with either #The God of Biscuits answer, or alternatively your helper column can have the formula:
=(A1*24)
and you set that column's cell format to Number.
All date and time is a format of a double value.
Time is the amount after the comma.
And all in front of comma is days since 00.01.1900.
Meaning 07:37:00 = 0,32 days.
Excel have a ways to pull the amount of hours with =HOUR('Your referance date time cell value')
You can aply this formula: =HORA(A2)+(MINUTO(A2)/60)
I have the below dates received in an Excel cell. I want them to be subtracted from 8 hours from the given date
2022-03-16T23:02:14+08:00
2022-03-17T07:59:46+08:00
2022-03-17T08:00:34+08:00
Here, I need output as for Eg:
2022-03-16
2022-03-16
2022-03-17
Using helper columns to explain what happens:
Column B returns the plain date
Column C returns the time part
Column D adds both values and subtracts the 8 hours (calculated as a decimal of 24 hours). INT is used to only return the date part - without time part.
If your dates are stored as string in excel cells then you may use below formula-
=TEXT(SUM(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A1,"+","</s><s>"),"T","</s><s>")&"</s></t>","//s[position()<=2]"))-TIME(8,0,0),"yyyy-mm-dd")
I'm struggling to make a formula work in excel.
My case : I have data in m/d/yyyy h:mm AM/PM format on E col.
I have data that goes to the next day post midnight. I'm looking to create another column lets say F where I want to check for data between time 5:30pm to next day 5:30am and return date in m/d/yyyy(col F)
Example :
Let's say a job request came in at 3/21/2021 4:30am, I want it to return 3/20/2021 on col F (previous date)
This is required due to different timezone and unfortunately the timezone cannot be altered on the data.
If it's really true that your data are in "m/d/yyyy hh:mm PM format" then this formula will deduct 8 hours from the value found in E4 and return a true date.
=DATE(RIGHT(LEFT(E4,FIND(" ",E4)-1),4),LEFT(E4,FIND("/",E4)-1),MID(E4,FIND("/",E4)+1,1+ISERROR(FIND("/",MID(E4,LEFT(E4,FIND("/",E4)-1),2)))))+TIMEVALUE(MID(E4,10,10))-(8/24)
A "True" date is a number which takes its display format from the cell format you set, meaning the "data" are different from the display. A "Fake" date (my expression) is a text string that looks like a date but is unsuitable for calculations because it's not a number. The "data" underlying a fake date are identical to the display. My above formula spends 95% of its effort on converting the fake date into a true one and is likely to earn your comment that it "doesn't work" because it returns a number. If so, don't comment. Set the cell format to the kind of display you want.
Of course, if E4 has a true date the effort can be reduced and the formula you seek would be simply
=E4-(8/24)
This is because in Excel dates one day has a value of 1. Therefore 1 hour = 1/24 and 8 hours = 1/24*8 or 8/24. Change the number of hours as desired, add or subtract them from the original as needed.
BTW, if your original data are really text (fake dates) do consider converting them to true dates using the 95% part of my first formula and then processing them as true dates. As you see, there is no advantage in keeping fakes around.
I am trying to take the values of time passed (formatted HH:MM:SS) and convert it to just minutes.
The issue I am having is that when I try and get the value of the time-value cell, it converts it to some odd value.
Example:
Wrong Value (what Excel gives me now, in worksheet):
34:32:12 = 1.43902777777778
Right Value (what Excel should give me):
34:32:12 = 2072.2
Calcualted:
34*60 + 32 + 12/60
Assuming your source value is in cell A1, here is all you need:
=N(A1*1440)
This method does not require a reformatting of the output cell.
How does it work?
Dates and times are stored in Excel as a combined number... where the integer portion represents the number of days since December 31, 1899 (although the year that Excel calculates from can be changed to 1904 in the Excel Options, but that is immaterial).
The decimal portion of the stored number represents the time component to associate with the date.
Your value of 1.43902777777778 is correct. It states that the ~34.5 hours represents ~1.44 days.
Since you are interested in minutes, we convert that days figure to minutes by multiplying by 1440 as there are 1440 minutes in a day.
The N() function that wraps that calculation ensures that the displayed output is treated as numeric by Excel. Otherwise the output cell would adopt the date-formatting of A1.
Either format the cell as [m] to see 2072, or multiply by 1440 (the number of minutes in a day) and format as 0.0 to see 2072.2
I have an amount of data sort per date (e.g : 2013-12-12 10:51:51.000) and I want to display that data on a day-long plot : The plot will show the sum values or the % for each hours of the day from 0:00 to 23:59.
My problem is I don't know how to sort data "modulus day", since the date is store in one cell and so day and hours are not separates.
Thank you for your help
The Date in Excel cell is stored as a decimal, where integer part corresponds to Date and decimal to time after midnight, so for example 6/30/2014 9:00 is essentially equal 41820.38. Thus, the sorting should work perfectly fine: it will be using underlying numeric representation of Date and Time as explained above.
Pertinent to your further requirement, i.e. to sort only on time part (decimal) ignoring Date (integer) the solution might be as following: Assuming Date is stored in Column A (cell A1 for example), put a formula in Column B (cell B1)
=A1-INT(A1)
and extend it to entire range, then sort on Column B. Optionally, for your convenience, you can convert the cell format in Column B to Number (to view just decimal part).
Rgds,