Excel Formula to count sick occurances - excel-formula

Im not sure if this is possible but....
I have an excel document with a list names in the A column, and then a list of dates in the first row. I basically want to count how many block occurances of sick are showing.
Sick 01/05 02/05 03/05 04/05 06/05 07/05
Analyst Name 1 sick sick
Analyst Name 2 sick sick
Analyst Name 3 sick
Above is how the table looks like. What i want in column B is to show many times a person is sick as occurances. I also want saturdays ignored, unless it shows a sick.
So Analyst 1 should show as 2 occurrences, one for 01/05, then back to work on the 02/05, then sick again on 03/05.
Analyst 2 should show as 1 occurrence, and they were sick on the 03/05, was not rota'd to work Saturday, and sick again on 06/05
And Analyst 3 should show as 1 occurrence, as they were Rota'd to work Saturday and they were sick.
I've tried researching but have only found counting those unique values, rather than counting as just one.
Any help would be greatly appreciated.

Related

Formula that provides multiple answers based on different outcomes in different cells

I have been banging my head against a brick wall trying to work out a formula, any help would be amazing!
SO....
I have three columns that work out annual leave.
COLUMN 1 = AMOUNT OF HOLIDAY A PERSON HAS REMAINING FOR THE YEAR
COLUMN 2 = AMOUNT OF HOLIDAY TAKEN IN REPORTING MONTH
COLUMN 3 = NEEDS A FORMULA TO WORK OUT IF THE PERSON HAS GONE OVER THEIR ANNUAL LIMIT, OR WHETHER SOME OF IT HAS, OR WHETHER THEY ARE ENTITLED TO THE FULL MONTHS ALLOCATION
Ie: If a person has taken 5 days holiday in COLUMN B, but in COLUMN A it is saying they have gone over their annual allowance by 2 days, the cell in COLUMN C needs to return zero (they dont get paid for holiday taken in Column 2 as they have already gone over their annual amount shown in COLUMN A)
If a person has taken 5 days in COLUMN B, but in COLUMN A they have 10 days remaining, COLUMN C should return 5 as they had 10 days remaining for the year, and taken 5 days in COLUMN B, so they are fine to be paid the 5 days they took
If a person has taken 5 days in COLUMN B, but in COLUMN A they only have 2 (2 days remaining for the year), in COLUMN C it needs to return 2 (as they are only allowed to be paid for 2 of the 5 days that took)
I have no idea how to do this...and its driving me mad! PLEASE HELP!!
How about this
=IF(A2<=0,0,IF(A2-B2>=0,B2,A2))
if you have overdrawn in column A it gives 0
if you have taken some, but not reaching over your limit, it gives number of days you have taken
otherwise (you have days remaining, but not enough to cover everything) it takes the remaining number of days
edit: changed the formula to show , instead of ; as people apparently mostly use a different regional setting than me.

Excel Formula for calculating time in round numbers with hours text

I'm trying to figure out a way to create an excel spreadsheet that will allow me to keep track of how many hours I've earned per each paid holiday my company offers, then keep track of how many hours I've used and what's remaining. But I'm unsure how to calculate this properly.
I could easily do the math my self as it's a simple lay out, but I'm trying to find a way that will just let me enter the numbers for earned and used and walk away from anything else.
What I'm trying to do is the follow:
Have multiple sections. In the first section it'll be my holidays. So in like Column A, working down I'd have New Years, Memorial Day, July 4th, etc. Column B working down would be time earned. But this would be labeled in each cell as "8 Hrs" or "4 hrs". Column C would be time used in the same format "4 hrs" "8 hrs". Then Column D would simple be hours remaining.
Now in the second section I'd have holiday hours earned, which is 2 weeks. Not too sure how to lay it out, and then I still have my sick days, but not sure if I should include that in section 2 or not with the vacation time.
I'd like a way to be able to simply Calculate B2 - C2 = D2. So 8 Hrs - 4 Hrs = 4 Hrs (to show 4 Hrs remaining for each line item.)
Problem is I'm unsure how to calculate remaining time simply because of the Hrs suffix. And with that I also can't calculate total time still remaining, both for holiday hours earn and vacation/sick hours.
Yes, it's easier for me to track it as 8 Hrs rather than 1 day, etc.
Any advice on how to formulate this. Or if anyone knows of a premade template that fits this type of scenario, that I could then just take and integrate into my own spreadsheet.
Sorry if this is confusing in any way.
Also, As I'm no excel wizard, unsure if this is relevant or not, but I'm using Excel 2016, as part of the Office suite.
Another option is to just leave the number as it is and label the column accordingly. Do you really need to see "hrs" in every cell when you know you are tracking hours?
Use a custom number format of,
[>1]0 \H\r\s;[=1]0 \H\r_);0 \H\r\s;[Red]#
... and treat all hours as integers.

Excel - What is the best way to analyse the following data?

I'm looking for the best way to analyse the following data.
This is the amount in hours an employee has taken in a year and what remains. The data bars are a percent of hours taken from what they're allotted, shown in column K. Col I is how many hours they have left, and col J shows the cumulative holiday they've taken throughout the year.
I need the relevant info shown on one row where each row will be an employee's holiday history. Different employees have different hours and I need a way that shows who is in most need of taking holiday when that filtering from largest to smallest etc.
Where I find this tricky is if an employee had 10 hours allotted, and has taken 2 hours, that's 20%, which is the same if someone had 100 hours and has only taken 20 hours. But it's clearly more important that the second employee uses up some of their leave. I'm struggling with the best way to represent this.

Complicated excel equation with multiple conditions

I have a sheet that I use to calculate my taxes, deductions, and 401k based on a timesheet. It also calculates my PTO, sick, and comp days (I don't get overtime, when I work overtime I get that time back at the end of the year as extra paid days off). My issue is that with the timesheet, it's tough to calculate my sick days, all other times are hour for hour or based on the pay period. But with sick days I get a specific amount every year.
Basically, I get 10 days (80 hours) per year. So I take that 80 hours, divide it by 26, and that gives me how much sick time I get per pay period. Problem is, since I get a biweekly pay, that's not actually correct. So for example, this month I have 2 paychecks, I'd get .92 days of sick time, but I should actually get 1. On the 2 months out of the year where I have 3 paychecks I would get 1.38 days of sick time, which of course isn't correct either.
So the issue is I'm trying to figure out how to write a formula to give me the the correct number of days. Refer to the screenshot:
So basiclaly on G6, the formula takes the rolled over sick days from the previous year (G39) and adds the current sick time to it. It decides that by checking if the gross pay for that pay period is there, then multiplies that amount by the sick time accrual rate (G40) and divides that by 8 to give me the days.
But what I want to do is to check how many months have been filled out and return that. So in this example May has been completed, so it would return 1 day. Since September has 3 pay periods, you will need to have all three September paychecks filled out for it to increment from 4 to 5 (may, jun, jul, aug makes 4).
Any ideas? Everything I've tried to do this it just fails. Keep in mind that those dates are dynamic, next year when I change the start date for the tax year, the months that have 3 months will change to match the actual pay periods for that year. So this formula will need to actually be able to count that any month has 3 pay periods to advance the sick day count, otherwise to do it if there are only 2 that have been filled.
Attempt #2 to answer! >8(
The end equation to do this all in one cell is going to get ugly,but it will work. In order to explain this and basically how I developed it, I am going to break it down into parts. At the end the parts will be back substituted into the big equation.
The first thing I did was determine what row was last filled, or as per the comments what is the last row of column P that has a value greater than 0. In order to determine this I used the aggregate function in a temporary cell of T15 (yes, in the middle of your spreadsheet but it wont matter in the end):
=AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1)
To break this function down:
14 tells it we want to do an array type calculation sorting the array from largest to smallest.
6 tells it to ignore errors
(P5:P30>0) tells it to build a true (or 1) and false (or 0) array of cells greater than 0
(ROW(P5:P30)-ROW(P5)+1) generates an array listing row numbers
1 tells it to return the largest value in the array, if it was 2 the second largest.
Now the important thing here is what happens when you multiply the greater than 0 array with the row number array. You wind up getting only the row numbers where there is a value in P greater than 0. And when we sort that and ask for the largest number we get the last row you have completed. Something to work with.
So now we can look up the last date completed, do some checks to see if its the end of the month or not and figure out how many sick days. The ugly formula starts out as:
=IF(MONTH(INDEX(I5:I30,T15))=MONTH(INDEX(I5:I30,T15)+14),MONTH(INDEX(I5:I30,T15))-1,MONTH(INDEX(I5:I30,T15)))
The logic test here is to find our if the last filled out date and the date 14 days in the future are still the same month. If they are the same month, you are not at the end of the month yet and there for have only earn up to the previous month's number in sick days. As such this part will tell us the previous month's number os sick days:
MONTH(INDEX(I5:I30,T15))-1
Now if the date 14 days in the future is not the same month then we know the last entry for the month has been completed and therefore we have accrued that month's number in sick days and use basically the same formula:
MONTH(INDEX(I5:I30,T15))-1
well I can see we have called on cell T15 4 times just to determine if we are subtracting 1 or 0. While the IF formula may feel more inline with your thought process, we can rearrange things and still get the same results but shortening the formula, reducing the calls to cell t15 by 1 and dropping the IF all together. This only works because we are dealing with 1 and 0 which is also true and false.
=MONTH(INDEX(I5:I30,T15))-(MONTH(INDEX(I5:I30,T15))=MONTH(INDEX(I5:I30,T15)+14))
Now lets bypass that T15 calculation and back substitute it in to the month formula above to get:
=MONTH(INDEX(I5:I30,AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1)))-(MONTH(INDEX(I5:I30,AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1)))=MONTH(INDEX(I5:I30,AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1))+14))
Not done yet. That only tells you the number of days you have accrued this year. Not what you really want to know. you need to convert it to hours. It also need to be reduced by the number of sick days used. The following need to be added to the big ugly above:
*8 for 8 sick hours to a sick day
-sum($L$5:$L$30) to account for sick time used
this results in:
=(MONTH(INDEX(I5:I30,AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1)))-(MONTH(INDEX(I5:I30,AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1)))=MONTH(INDEX(I5:I30,AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1))+14)))*8-sum($L$5:$L$30)
Now I did notice during testing that if no entries are in the spreadsheet, then the row of the last entry become 0 and this is simply not acceptable as it causes some strange results. So we will wrap this whole formula in a small error catcher to make sure 0 is the results when no payperiods have been completed.
=if(sum(P5:P30)=0,0,(MONTH(INDEX(I5:I30,AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1)))-(MONTH(INDEX(I5:I30,AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1)))=MONTH(INDEX(I5:I30,AGGREGATE(14,6,(P5:P30>0)*(ROW(P5:P30)-ROW(P5)+1),1))+14)))*8-sum($L$5:$L$30))
The icing on the cake is adding on the accrued sick days from the previous year. Since I am not sure how the sick rate and sick start work together I will leave that calculation up to you and simply let you know that whatever number gets carried over from the previous year, simply add it to the above formula after the very last ).
Here is my test bed showing proof of concept:
WARNING: This method ##WILL## produce false results for a pay period is =0 before the last date with a pay period >0 see example below:

COUNTIF only if header of column contains specific text

I am trying to write a function in excel (without using vba/macros if possible), to count the number of remaining work days for each employee for the month, from the first of the month to a date I enter into A1. The problem is, the scheduling file I use starts on a Monday every time, so if the month begins on a Friday, there are 4 days from the previous month on the page and the same could happen at the end of the month if the month doesn't end exactly on a Saturday.
In row 6, I have the dates (formatted as 28-Sep-2015), and from rows 9 and below, I have employee names and whether or not they're scheduled to work on the days directly above in row 6. I'm looking to count the number of times the word "WORKING" appears in the row for each given employee, but only to count it if the header in row 6 contains "Sep". I don't want to count any times "WORKING" appears if it comes from the past month or the upcoming month. (Also, no one works Sundays, so Sundays are skipped.)
I'll try to show an example of set up here.. hopefully it can help:
A1: 28-Sep-2015
A6-H6: Employee, 28-Sep-2015, 29-Sep-2015,30-Sep-2015, 1-Oct-2016, 2-Oct-2016, 3-Oct-2016
A9-H9: George, WORKING, OFF, WORKING, WORKING, WORKING, WORKING
So for this small example, the result should only be 2 working days, since George only works twice from 28 Sep to the end of the month.
I've been searching for how to do this for a few days now, but nothing seems to work when I try it. Please help!
If you are using 2007 and later than use this:
=COUNTIFS($A$6:$G$6,"<="&EOMONTH($A$1,0),$A$6:$G$6,">="&DATE(YEAR($A$1),MONTH($A$1),1),$A9:$G9,"=WORKING")

Resources