Maximum value if
To get a maximum value based on criteria, you can use the MAX function together with the IF function in an array formula. In the example shown, the formula in cell G6 is:
Where names is the named range B6:B17, and times is the named range D6:D17.
Notes: this is an array formula and must be entered with Control + Shift + Enter. Later versions of Excel have a MAXIFS function, see note below.
How this formula works
The IF function is evaluated first. The logical test is an expression that tests all names:
IF(names=F6 // logical test
The result is an array of TRUE / FALSE values like this:
TRUE values correspond to rows where the name is "Hannah". For all other names, the value is FALSE. The "value if true" for IF is the named range times, which contains the full set of times. No "value if false" is provided:
The final result from IF is an array like this:
Note: Excel times are fractional values, which explains the long decimals.
The IF function acts like a filter. Only time values associated with TRUE make it through the filter, other values are replaced with FALSE.
The IF function delivers this array directly to the MAX function, which automatically ignores FALSE values and returns the max time in the array.
The MAXIFS function, available in Excel O365 and Excel 2019, is designed to return a maximum value based on one or more criteria without the need for an array formula. With MAXIFS, the formula in G6 is: