I want to calculate total time from same column containing date/time same row.
Use of pivot table or separate date and time into diff columns. I have the table as shown below.
First punch is at 8:48 last punch is at 19:53. I want to get the total hours between the 2 punches per day.
Any ideas how to do this?
Use the HOUR() worksheet function for this:
E.g.
B2 = 13:07
B3 = 18:07
Formula "=HOUR(B3-B2)" yields "5".
Related
I have a huge dataset that goes from row A2 to row A105393.Each row has a timestamp of 5 minutes.
For example row A2 contains the timestamp of 2020-01-01 00:00:38 while row A3 shows 2020-01-01 00:05:38.
This goes on until the the end of 2020.
What I want is to summarize all those minutes into daily outputs. To get the daily output for 2020-01-01, I have to manually drag and use the SUM function from A2 to A289. Having a dataset containing 105393 rows, this is gonna take some while.
Is there any other easier way I can do this such that I can get the the daily outputs?
Thanks in advance!!
Edit: Here is how a portion of it looks.
Let's say I want the total demand for that whole day, how can I do this instead of dragging all the rows?
In row 2 use:
=SUMPRODUCT(B$2:B$105393*(INT(A$2:A$105393)=INT(A$2)))
It will tell the sum of column B where the date without timestamp (INT function) is the same in column A.
You can create a Pivot table and then summarize by Day.
Select any cell in the list of dates
Insert > PivotTable
Drag Timestamp to Rows & Demand to Values
Select any date cell in the pivot table
Group field
Choose Days
In pictures:
If you separate dates out into a new column, you then can get what you want easily using Data -> Subtotoal.
Use =YEAR(A2)&"-"&MONTH(A2)&"-"&DAY(A2) to get date.
Maybe the title of the question is wrong, but I'll try to explain what I'm looking for. I have in cell A1 a drop down list to select months (from 1-12). Is it possible to automatically fill the rest of the A column with hourly data for the whole selected month. For example if it's selected "3" in A column'd be:
Time
1.3.2018 1:00:00
1.3.2018 2:00:00
1.3.2018 3:00:00
...
31.3.2018 22:00:00
31.3.2018 23:00:00
1.4.2018 0:00:00
Maybe, something like second drop down list.
Or maybe, it can be done with substitute, but then some months have 31 days, some 30, and february 28, and there is a problem with daylight saving time. In 3rd month, there's one day where I need to have 23 hours (jump from 02:00 to 04:00), and in 10th month one day with 25 hours (02:00, 02:00, 03:00).
In cell A2 enter the following formula:
=DATE(2018,A1,1)
Then custom format the cell with type:
d.m.yyyy hh:mm:ss
In Cell A3 enter the following formula:
=A2+1/24
And change the cell format as above, then drag the cell down to autofill until you have the full month.
There would be multiple ways, but one way is to first determine number of rows required (for March it would be 31 * 24 = 744), set first row using DATE function and then keep adding 1 hour until the desired row number is reached.
Calculate number of rows required in A2: =DAY(EOMONTH(A3,0))*24+ROW()
in A3 enter =DATE(YEAR(TODAY()),A1,1)
in A4 enter =IF(ROW()<=$A$2,A3+1/24,"") and drag down till about 800.
This will make it dynamic for number of days in month
I have a spreadsheet that tracks average file processing times over the course of a month. One of the macros and stats that we like to pull, is performance on Mondays (as the files are a little built up over the weekend). The spreadsheet is organized into columns by weekdays of the month:
The dates are formatted MM/DD/YYYY, so I would think Excel has a date function that it can determine weekday based on that date value.
Currently, I just have to manually tell the Macro which columns are Mondays, like so:
=AVERAGE(B20,G20,L20,Q20)
So, instead of manually, how would I get the average over the range of say, B20 to V20, only if the day of the week is Monday (the date cells are in row 1, so B1 to V1)?
To determine the weekday of a date in EXCEL use the =WEEKDAY() formula, which evaluates as 1 (Sunday) to 7 (Saturday)
e.g. If A1 contains 12/31/2016 (or 31/12/2016 if you're from where I'm from), the formual =WEEKDAY(A1) would evaluate to 7 (indicating that the last day of 2016 was a Saturday)
To apply this formula to your problem: (assuming that the dates are in row 1 and the values are in row 2)
insert a new row to hold the WEEKDAY() value (say, row 2)
in cell A2 type in =WEEKDAY(A1)
copy this formula as far right as necessary (to include all your dates)
Your average for Mondays is calculated as =AVERAGEIF(2:2, 2, 3:3)
Possibly, you can add a column called [Day Of The Week] and use the following formula to display the day.
TEXT(B4,"dddd")
Then add an 'If'statement to your result cell.
simply
=SUMPRODUCT((MOD(B1:V1,7)=2)*B20:V20)/SUMPRODUCT((MOD(B1:V1,7)=2)*1)
should give the average of all values from B20 to V20 if the corresponding cell in row 1 is a monday.
the first part sums the values of all mondays and the second part counts them (sum / count = average) ;)
If you have any questions, just ask.
If your date is in A1, you can use =Text(A1,"dddd") to determine the day of the week (it will return the name, "Monday", "Tuesday", etc.) so then you could do perhaps:
=If(text(A1,"dddd")="Monday",[do whatever],[do whatever]) (may need a helper row/column to hold the text of the weekday)
(Or use AverageIf() and use the Text() idea.)
I have this Excel spreadsheet where in one of the columns I need to come up with a formula that will compute the total amount for a given day. This is a small snapshot of a huge spreadsheet:
Date/Time Time Amount Balance Total $ per day
9/30/2014 5:30 PM $5.20 $87.81
9/30/2014 4:23 PM $0.14 $93.01
9/30/2014 8:53 AM ($4.61) $93.15
9/30/2014 7:53 AM $5.20 $88.54
9/29/2014 5:08 PM $1.09 $93.74
9/29/2014 7:18 AM $1.09 $94.83
9/26/2014 5:31 PM ($4.61) $95.92
For this example the Total $ per day would be:
E2 $5.93
E6 $2.18
E8 ($4.61)
I'm guessing there is a formula that is much better than manually computing this by =SUM(X#:X#)?
In E2, put in the following formula:
=IF(A2<>A1,SUMIF(A:A,A2,C:C),"")
Then drag it down.
Basically, you're saying:
IF: There's a new date in column A (not the same as the date above it),
THEN: Sum all the values from column C that have the same value in column A
ELSE: Return an empty cell
That should do the trick.
If $87.81 is in D2 please try, in E2 copied down to suit:
=SUMIF(A:A,A2,C:C)
This assumes your dollar values are numeric formatted as currency.
The formulae will return a value for each row, even where there are several rows for the same date and a PivotTable may be preferable. Date/Time for ROWS, and Sum of Amount for Σ VALUES. This assumes Date/Time and Time are distinct columns.
For a PT the data need not be sorted in order.
I have written this function that will give me a monthly sum for two columns: one has the date of each order, one has the cost of each order.
=SUMIF($C$1:$C$1000,">="&DATE(2010,6,1),$D$1:$D$1000)-SUMIF($C$1:$C$1000,">="&DATE(2010,7,1),$D$1:$D$1000)
Using data like this:
8/16/10 17:00 7.99
8/16/10 14:25 7.99
8/15/10 22:42 7.99
I end up with a table like this:
May 998
June 968.28
July 1239.76
August 514.96
However, now I would like to do daily sums and using my way I have to hand edit each row.
How can I do this better in Excel?
Use a column to let each date be shown as month number; another column for day number:
A B C D
----- ----- ----------- --------
1 8 6 8/6/2010 12.70
2 8 7 8/7/2010 10.50
3 8 7 8/7/2010 7.10
4 8 9 8/9/2010 10.50
5 8 10 8/10/2010 15.00
The formula for A1 is =Month(C1)
The formula for B1 is =Day(C1)
For Month sums, put the month number next to each month:
E F G
----- ----- -------------
1 7 July $1,000,010
2 8 Aug $1,200,300
The formula for G1 is =SumIf($A$1:$A$100, E1, $D$1:$D$100). This is a portable formula; just copy it down.
Total for the day will be be a bit more complicated, but you can probably see how to do it.
Use pivot tables, it will definitely save you time. If you are using excel 2007+ use tables (structured references) to keep your table dynamic. However if you insist on using functions, go with Smandoli's suggestion. Again, if you are on 2007+ use SUMIFS, it's faster compared to SUMIF.
Following up on Niketya's answer, there's a good explanation of Pivot Tables here:
http://peltiertech.com/WordPress/grouping-by-date-in-a-pivot-table/
For Excel 2007 you'd create the Pivot Table, make your Date column a Row Label, your Amount column a value. You'd then right click on one of the row labels (ie a date), right click and select Group. You'd then get the option to group by day, month, etc.
Personally that's the way I'd go.
If you prefer formulae, Smandoli's answer would get you most of the way there. To be able to use Sumif by day, you'd add a column with a formula like:
=DATE(YEAR(C1), MONTH(C1), DAY(C1))
where column C contains your datetimes.
You can then use this in your sumif.
Add a column to your existing data to get rid of the hour:minute:second time stamp on each row:
=DATE(YEAR(A1), MONTH(A1), DAY(A1))
Extend this down the length of your data. Even easier: quit collecting the hh:mm:ss data if you don't need it. Assuming your date/time was in column A, and your value was in column B, you'd put the above formula in column C, and auto-extend it for all your data.
Now, in another column (let's say E), create a series of dates corresponding to each day of the specific month you're interested in. Just type the first date, (for example, 10/7/2016 in E1), and auto-extend. Then, in the cell next to the first date, F1, enter:
=SUMIF(C:C, E1, B:B )
autoextend the formula to cover every date in the month, and you're done. Begin at 1/1/2016, and auto-extend for the whole year if you like.
If the second row has the same pattern as the first row, you just need edit first row manually, then you position your mouse pointer to the bottom-right corner, in the mean time, press ctrl key to drag the cell down. the pattern should be copied automatically.