Similar to RANKIF? How to Rank a list of people based on multiple criteria in the same array?

grayjeans

New Member
Joined
Feb 6, 2017
Messages
3
I have been driving myself insane all day trying to figure this out and I am at my wits end. So I need help :(

I know there is not a specific RANKIF or RANKIFS function, but I need something that does essentially that. I'll try my best to explain; it is a bit complicated. I have a group of sales reps, and there are four different categories that those sales reps fall into. I need to rank those reps by their performances, and indicate which of them are in the bottom 50% of performers in there group for two consecutive months. But that's where I am running into trouble. I have been able to use RANK so that I can indicate which reps were in the bottom 50% of the entire organization...but that's not what I need and I cannot figure out to indicate which were in the bottom 50% in JUST THEIR GROUPS.

Also, not all reps are figured into the equation. They are only counted IF they have a goal set for the month (i.e., they are on a quota plan). Here is an example:

Sales RepLevelMonth 1 QuotaMonth 1 SalesMonth 1 PerformanceMonth 2 QuotaMonth 2 SalesMonth 2 Performance
AdamVeteranX24,00096%25,00018,00072%
BartVeteranX23,00092%25,00016,00064%
JamesVeteran25,00020,00080%25,00022,50090%
PeterVeteran25,00022,00088%25,00025,000100%
AndrewSenior15,00014,00093%15,00010,25068%
JohnSenior15,00015,000100%15,00011,40076%
JudeSenior15,00011,00073%15,00012,20081%
NathanSenior15,00013,00087%15,00014,70098%
MatthewJuniorX6,25083%7,50010,000133%
PhilipJuniorX5,25070%7,5007,10095%
SimonJunior7,5005,00067%7,5002,50033%
ThomasJunior7,5004,50060%7,5001,00013%

<tbody>
</tbody>

An "X" indicates the person was not on a quota plan for the month, so they don't get counted. So instead of finding the bottom 2 people in the group of four, I'm just finding the bottom person (bottom 50%; because there's only 2 people in the group who are competing).

Reps in BOLD are those who are in the bottom 50% for the month. In order to meet the criteria, they must be below 50% for two consecutive months. Thomas is the only one who meets that criteria. I am using the performance columns (5 and 8) to indicate whether or not they are in the bottom 50%.

I will have another column before this table where the formula will go and if anyone meets BOTH criteria, an "IMPROVE" mark will appear; if they do not meet both criteria, it will say "OK." So if I make a new column A, what formula should go there to give me this result?

Also...the number of reps may vary month to month as time goes on. It will ALWAYS be the bottom 50%, just not a fixed NUMBER of reps in a particular group, if that is worth mentioning.

PLEASE HELP BEFORE I GO INSANE.
 

Excel Facts

Remove leading & trailing spaces
Save as CSV to remove all leading and trailing spaces. It is faster than using TRIM().
ABCDEFGHI
1Sales RepLevelMonth 1 QuotaMonth 1 SalesMonth 1 PerformanceMonth 2 QuotaMonth 2 SalesMonth 2 Performance
2OKAdamVeteranX24,00096%25,00018,00072%
3OKBartVeteranX23,00092%25,00016,00064%
4OKJamesVeteran25,00020,00080%25,00022,50090%
5OKPeterVeteran25,00022,00088%25,00025,000100%
6OKAndrewSenior15,00014,00093%15,00010,25068%
7OKJohnSenior15,00015,000100%15,00011,40076%
8OKJudeSenior15,00011,00073%15,00012,20081%
9OKNathanSenior15,00013,00087%15,00014,70098%
10OKMatthewJuniorX6,25083%7,50010,000133%
11OKPhilipJuniorX5,25070%7,5007,10095%
12ImproveSimonJunior7,5005,00067%7,5002,50033%
13ImproveThomasJunior7,5004,50060%7,5001,00013%
14

<tbody>
</tbody>
Sheet16

Worksheet Formulas
CellFormula
A2=IF(B2="","",IF(AND(AND(SUMPRODUCT(--((--ISNUMBER($D$2:$D$20)*$F$2:$F$20)>(--ISNUMBER(D2)*F2)))+1>SUMPRODUCT(--ISNUMBER($D$2:$D$20))/2,ISNUMBER(D2)),AND(SUMPRODUCT(--((--ISNUMBER($G$2:$G$20)*$I$2:$I$20)>(--ISNUMBER(G2)*I2)))+1>SUMPRODUCT(--ISNUMBER($G$2:$G$20))/2,ISNUMBER(G2))),"Improve","OK"))

<tbody>
</tbody>

<tbody>
</tbody>



Here's one option. Fairly long, I might see if it can be shortened.

Based on your explanation, I believe James and Simon should be included in the first month, and Peter and Nathan should not. If that's not so, let me know. I created this CF formula to automatically bold those in the bottom half:

=AND(SUMPRODUCT(--((--ISNUMBER(D$2:D$20)*F$2:F$20)>(--ISNUMBER(D1)*F1)))+1>SUMPRODUCT(--ISNUMBER(D$2:D$20))/2,ISNUMBER(D1))


Also, did the answer I gave on your other question work? Did you try it?
 
Last edited:
Upvote 0
Yes, sorry about the confusion. Peter should NOT be included in the first month, but James should. Because they're are only 2 Veterans on quota for that month. So half of 2 is 1, and the bottom 1 rep is Peter. My mistake.

However, Simon should NOT be included (because he has a performance rate of 67%. Thomas being included is correct because he has the lowest percentage in the group of junior reps (remember there are only 2 reps on quota plan in that group for the first month; so just looking for the bottom 1 rep).

Nathan should be included as well so that is also correct. Because for the first month, all 4 senior reps are on quota. That means I'm looking for the bottom 2 (2/4=50%). So he and Jude, both seniors, are in the bottom 50% of their group.

hopefully that makes sense. Thanks for the reply. I will test out the formula you provided.
 
Upvote 0
The formula as written doesn't take into account the Level. I'll need to adjust the formula. I'll reply back when I have something.
 
Upvote 0
Try this:

ABCDEFGHI
1Sales RepLevelMonth 1 QuotaMonth 1 SalesMonth 1 PerformanceMonth 2 QuotaMonth 2 SalesMonth 2 Performance
2OKAdamVeteranX24,00096%25,00018,00072%
3OKBartVeteranX23,00092%25,00016,00064%
4OKJamesVeteran25,00020,00080%25,00022,50090%
5OKPeterVeteran25,00022,00088%25,00025,000100%
6OKAndrewSenior15,00014,00093%15,00010,25068%
7OKJohnSenior15,00015,000100%15,00011,40076%
8OKJudeSenior15,00011,00073%15,00012,20081%
9OKNathanSenior15,00013,00087%15,00014,70098%
10OKMatthewJuniorX6,25083%7,50010,000133%
11OKPhilipJuniorX5,25070%7,5007,10095%
12OKSimonJunior7,5005,00067%7,5002,50033%
13ImproveThomasJunior7,5004,50060%7,5001,00013%
14

<colgroup><col style="width: 25pxpx"><col><col><col><col><col><col><col><col><col></colgroup><thead>
</thead><tbody>
</tbody>
Sheet3

Worksheet Formulas
CellFormula
A2=IF(B2="","",IF(IF(ISNUMBER(D2),IF(SUMPRODUCT(--(--ISNUMBER($D$2:$D$20)*--($C$2:$C$20=C2)*$F$2:$F$20>=(--ISNUMBER(D2)*F2)))>SUMPRODUCT(--($C$2:$C$20=C2),--ISNUMBER($D$2:$D$20))/2,1,0),0)+IF(ISNUMBER(G2),IF(SUMPRODUCT(--(--ISNUMBER($G$2:$G$20)*--($C$2:$C$20=C2)*$I$2:$I$20>=(--ISNUMBER(G2)*I2)))>SUMPRODUCT(--($C$2:$C$20=C2),--ISNUMBER($G$2:$G$20))/2,1,0),0)=2,"Improve","OK"))

<thead>
</thead><tbody>
</tbody>

<tbody>
</tbody>
 
Upvote 0

Forum statistics

Threads
1,215,593
Messages
6,125,715
Members
449,254
Latest member
Eva146

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top