We help IT Professionals succeed at work.

Rank with Multi Conditions

120 Views
Last Modified: 2017-04-14
Hello Experts,
I want to get formula that able to return custom ranking in the column Rank, with following conditions:
1- If Score2 is highest in the class and there is no duplicate value then it will be ranked as 1.
2- If Score2 is highest in the class and there is duplicate value then the record with highest Score1 should be ranked as 1.

See the picture for more understanding. Data Capture
Comment
Watch Question

ShumsManaging Director/Excel VBA Developer
CERTIFIED EXPERT
Distinguished Expert 2018

Commented:
Hi,

You can use below Array Formula in E2:
=IF(AND(MAX(IF($A$2:$A$7=$A2,$C$2:$C$7))=$C2,MAX(IF($A$2:$A$7=$A2,$D$2:$D$7))=$D2),1,2)

Open in new window

Confirm with Ctrl+Shift+Enter
RankingHope this helps.
Rank-With-Multiple-Condition.xlsx
CERTIFIED EXPERT

Author

Commented:
Good solution Shums- Two issues here:
1- Change Person 3 Score1 to 97% and Score2 to 100% Then he should be ranked as 1,but the formula returns 2
2- Forget to mention formula should continue rank 1,2,3,4... if there is more values in the data-set.
ShumsManaging Director/Excel VBA Developer
CERTIFIED EXPERT
Distinguished Expert 2018

Commented:
It would be helpful, if you can provide sample data with expected result.
CERTIFIED EXPERT

Author

Commented:
Dear Shums,

To make it easier I expect the function to return the sequence of the data if I  did Custom sort with following levels:
  1. Level 1: Class , A to Z
  2. Level 2:Score2, Largest to Smallest
  3. Level 3: Score1, Largest to Smallest

See the attached file
Rank-With-Multiple-Condition-Custom.xlsx
ShumsManaging Director/Excel VBA Developer
CERTIFIED EXPERT
Distinguished Expert 2018

Commented:
Hi Abbas,

The simplest would be to add Helper Column adding both scores and ranking them with below formula:
=COUNTIFS([Class],[@Class],[Final Score],">"&[@[Final Score]])+1

Open in new window

RankingRank-With-Multiple-Condition_v1.xlsx
CERTIFIED EXPERT

Author

Commented:
Hi Shums,

I appreciate your patience for solving my question. there will be situations in the data set where Score2 is the greatest so no consideration should happen for score 1. for example in class A

1st set
Score 2 = 95%, Score 1= 95% - sum= 190
2nd set
Score 2= 96% , Score1 = 80% - sum= 176
3rd set
Score 2=95% , Score 1= 88% - sum=183

in this scenario the rank should be this way:
1 for 2nd because it has greatest score 2
2 for 1st because it has has highest score 1
3 for 3rd because it has less score 1

I hope the idea is clear.
CERTIFIED EXPERT
Top Expert 2016
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
Managing Director/Excel VBA Developer
CERTIFIED EXPERT
Distinguished Expert 2018
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
CERTIFIED EXPERT

Author

Commented:
Thank you very much for the help. both solutions are awesome.