Rank if formula
To rank items in a list using one or more criteria, you can use the COUNTIFS function. In the example shown, the formula in E5 is:
where "groups" is the named range C5:C14, and "scores" is the named range D5:D14.
The result is a rank for each person in their own group. Note: although data is sorted by group in the screenshot, the formula will work fine with unsorted data.
How this formula works
Although Excel has a RANK function, there is no RANKIF function to perform a conditional rank. However, you can easily create a conditional RANK with the COUNTIFS function.
The COUNTIFS function can perform a conditional count using two or more criteria. Criteria are entered in range/criteria pairs. In this case, the first criteria restricts the count to the same group, using the named range "groups" (C5:C14):
By itself, this will return total group members in group "A", which is 5.
The second criteria restricts the count to only scores greater than the "current score" from D5:
The two criteria work together to count rows where the group is A and the score is higher. For the first name in the list (Hannah), there are no higher scores in group A, so COUNTIFS returns zero. In the next row (Edward), there are three scores in group A higher than 79, so COUNTIFS returns 3. And so on.
To get a proper rank, we simply add 1 to the number returned by COUNTIFS.
Reversing rank order
To reverse rank order and rank in order (i.e. smallest value is ranked #1) just use the less than operator (<) instead of greater than (>):
Instead of counting scores greater than D5, this version will count scores less than the value in D5, effectively reversing the rank order.