Frequency of data occurence in Excel Column based on the certain condition - excel

I have a column (Table 1 below) with time data in 24 hour format saved as text.I want Table 2 to be populated by the hour and adding all the occurrences for the hour.
So one occurrence is at 0102. This falls within an hor range of 12:30am to 01:30pm. I want the count to be 1 for 01:00.
If an occurrence falls between 01:30 to 02:30 I want the count to be 1 for 02:00.
Also if time is 04:55 it should show count for 05:00 as 1. Basically rounding to the closest time and showing a count for that. It should round of to the nearest time and add the number of occurrences also. Thats why 06:00 is 2. to account for 0622 and 0614.
For example:
TABLE 1 TABLE2 (Expected results)
Column A Column A Column B
0102 01:00 1
0222 02:00 2
0223 03:00 0
0455 04:00 0
0622 05:00 1
0614 06:00 2
NOTE In B1 we get 1 because value in A1 of TABLE1 is 0102 and falls between 12:30 and 01:30, thus represented by 01:00 in A1 in TABLE 2. We have two values in Table1 between 01:30 and 02:30: one is in A2 and the second is in A3, so we expect 2 in B2 in TABLE 2, the time range which is represented by 02:00 in A2. We attribute 0 to cells B3 and B4 in Table2 because there isn't any data in Table1 between 02:30-03:30 and 03:30-04:30, therefore they get 0 in their corresponding cells in Table2. However, we have two instances of data, 0622 and 0612 in Table1 which fall between 05:30 and 06:30, so value 2 is attributed to B6.
How do I do this using a formula?
Please help.

So after struggling to understand what was going on, here is the simple solution:
first let me clarify again:
column A: but pasted as text originally and in hhmm format, but you need to reformat them as simple numbers, so you will lose those 0 s at the beginning of certain data.
column B: we put down our time ranges, as you said, starting from 12:30 AM, so i put it down as 0030 of which the zeros are not visible anymore in number format. This range starts from 30 and increments by 100, until it stops at 2330 instead of going to 2430. this will be reflected in the formula for the last cell in column D.
column C: the hour ranges against which we round and count the data in A.
column D: we put down the following formula in D2 :
=COUNTIFS(A:A,">"&$B2,A:A,"<"&$B3)
and drag and fill down until the last but one cell.
for the last cell D25 we change the greater/smaller than signs, and use the following formula (only for this cell):
=COUNTIFS(A:A,"<"&$B25,A:A,"<"&$B2)
Try these formulas, if it doesn't work, download the example sheet,
here is the example sheet i created for this purpose, downloadable from here
and if you still have questions, don't hesitate to put them in the commentaries.

Related

Sum the values of a cell in Excel or change to a different expression of that value in another cell

I have a cell of a worksheet with a value of
1h 25m
entered with the cell (got it from a Jira import). I am trying to figure out how to populate another cell on the same row with a purely numerical version of this cell value, i.e.
85
This is so that I can run SUMIF statements to get the total amounts of minutes for a given person, on a given day.
As in the provided image, I want the sum total amount of Log Work (Column C) for Matthew R. on the 17th of October.
Here, we're creating two helper columns. You could combine everything, but thought this may be easier to illustrate.
Value
hours
minutes
sum
5m
0
5
5
1h 35m
1
35
95
3h
3
0
180
4h 55m
4
55
295
12h
12
0
720
Column A (Value) is your original value.
Column B (hours) is the following formula, which finds the letter "h" and returns everything to the left of it. If H is not found then return a 0.
=IFERROR(LEFT(A2,FIND("h",A2)-1),0)
Column C (minutes) is the following formula, which returns everything to the right of "h" and then removes "m" and trims it. But if "m" is not found then return a 0.
=IF(ISNUMBER(SEARCH("m",A2)),TRIM(SUBSTITUTE(IFERROR(RIGHT(A2,LEN(A2)-FIND("h",A2)),A2),"m","")),0)
Lastly, column D simply calculates total minutes as:
=(B2*60)+C2
You can probably shorten column C's formula, but this at least provides you an interim solution.

Excel column autofill (autoincrement with formula)

500 employees will have 3 hours of work each day (for sample made weekday image sample). so i tried with auto increment for B2 cell "=sum(A2+3)".
problem arise when i try to enter Absent data or the cell is cleared the data starts from 3 like in E4 or like in E5. need to Enter AA for absent data for that day.
So base the calculation on col A only and multiply the 3 by the column number less 1:
=$A2+(3*(col()-1))
as the column position will multiply by 1, 2 or 3 etc similar to the progression you expected from your method.

EXCEL Max value for multple time/date intervals

I have an excel file as per the image attached
The date range in column D spans several days ie. there is also data for 10/08/2016; 10/09/2016, ect...
I am trying to get the maximum value in columnC for each 15 minute interval in column D.
eg:
10/08/2016 00:00 - 00:15 -- 0
10/08/2016 00:16 - 00:30 -- 25
10/08/2016 00:31 - 00:45 -- 13
and so forth until the end of the file.
Any help is appreciated.
First you need to get the 15 minute intervals. To do this, I put the Date/Time Start values in column F starting in F2 (I assumed row 1 is a header row). In cell F2 is this formula: =FLOOR(MIN(D:D),15/1440) and in cell F3 and copied down is this formula: =IF(F2="","",IF(F2+TIME(0,15,0)>MAX(D:D),"",F2+TIME(0,15,0)))
Then I put Date/Time End values in column G starting in G2 (because row 1 is a header row). In cell G2 and copied down is this formula: =IF(F2="","",F2+TIME(0,15,0))
Now you can get your maximum per interval. To do this, I put Max Interval Value results in column H starting in H2 using this formula copied down: =IF(F2="","",MAX(INDEX(($D$2:$D$11001>=F2)*($D$2:$D$11001<G2)*$C$2:$C$11001,)))
Adjust columns to suit your needs, and adjust the ranges ($D$2:$D$11001 and $C$2:$C$11001) to suit your actual data.

Transforming Date data from one column to several 24row columns

I have data output into one column by hour of day. I was wondering if there was any way to take that data from the one column, and spread it across multiple columns in 24 hour segments.
For example this is my data now:
Time 1st Day views
12:00AM 3
1:00AM 43
2:00AM 0
... ...
11:00PM 5
12:00AM 4
1:00AM 10
2:00AM 0
... ...
11:00PM 15
I want it to look like this:
Time 1st Day views 2nd Day Views
12:00AM 3 4
1:00AM 43 10
2:00AM 0 0
... ... ...
11:00PM 5 15
Any help would be appreciated.
Thanks,
Assuming header is in Row 1, time column is column A, views column is column B, and you know for certain that there is one data entry for each hour -- that is, there are no time gaps in column A --
Enter the formula in cell C2: =OFFSET($B2,24*COLUMNS($B:B),0)
Drag the formula down from cell C2 to cell C25. Then drag the whole highlighted range, c2:c25, to the right until you start seeing zeros. Highlight cell B2 and drag to the right to autofill the header.

Sum values in a column based on date

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.

Resources