Fórmula genérica
(=MAX(IF(range=criteria,values)))
Resumo
Para obter um valor máximo com base em critérios, você pode usar a função MAX junto com a função IF em uma fórmula de matriz. No exemplo mostrado, a fórmula na célula G6 é:
(=MAX(IF(names=F6,times)))
Onde names é o intervalo nomeado B6: B17 e times é o intervalo nomeado D6: D17.
Observações: esta é uma fórmula de matriz e deve ser inserida com Control + Shift + Enter. Versões posteriores do Excel têm uma função MAXIFS, consulte a observação abaixo.
Explicação
A função IF é avaliada primeiro. O teste lógico é uma expressão que testa todos os nomes:
IF(names=F6 // logical test
O resultado é uma matriz de valores TRUE / FALSE como este:
(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE)
Os valores TRUE correspondem a linhas em que o nome é "Hannah". Para todos os outros nomes, o valor é FALSE. O "valor se verdadeiro" para IF é o intervalo nomeado de tempos , que contém o conjunto completo de tempos. Nenhum "valor se falso" é fornecido:
IF(names=F6,times)
O resultado final de IF é uma matriz como esta:
(0.000868055555555556;FALSE;FALSE;0.000902777777777778;FALSE;FALSE;0.000914351851851852;FALSE;FALSE;0.000833333333333333;FALSE;FALSE)
Observação: os tempos do Excel são valores fracionários, o que explica os decimais longos.
A função IF atua como um filtro. Apenas os valores de tempo associados a TRUE passam pelo filtro, outros valores são substituídos por FALSE.
A função IF entrega esse array diretamente para a função MAX, que ignora automaticamente os valores FALSE e retorna o tempo máximo no array.
Com MAXIFS
A função MAXIFS, disponível no Excel O365 e Excel 2019, foi projetada para retornar um valor máximo com base em um ou mais critérios sem a necessidade de uma fórmula de matriz. Com MAXIFS, a fórmula em G6 é:
=MAXIFS(times,names,F6)