
Fórmula genérica
(=MODE(IF(criteria,data)))
Resumo
Para calcular um modo condicional com um ou mais critérios, você pode usar uma fórmula de matriz com base nas funções IF e MODE. No exemplo mostrado, a fórmula em F5 é:
(=MODE(IF(group=E5,data)))
onde "grupo" é o intervalo nomeado B5: B14 e "dados" é o intervalo nomeado C5: C14.
Observação: esta é uma fórmula de matriz e deve ser inserida com control + shift + enter.
Explicação
A função MODE não tem uma maneira embutida de aplicar critérios. Dado um intervalo, ele retornará o número que ocorre com mais frequência nesse intervalo.
Para aplicar critérios, usamos a função IF dentro de MODE para filtrar valores em um intervalo. Neste exemplo, a função IF filtra valores por grupo com uma expressão como esta:
IF(group=E5,data)
Isso compara cada valor no intervalo nomeado "grupo" com o valor em E5, que é "A". Como o teste lógico é aplicado a uma matriz com vários valores, o resultado é uma matriz de valores TRUE FALSE:
(TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE)
onde cada TRUE corresponde a uma linha onde o grupo é "A". Essa matriz se torna um filtro. Para cada TRUE, IF retorna o valor correspondente no intervalo nomeado "dados". Os valores FALSE permanecem inalterados. O resultado final de IF é esta matriz:
(3;FALSE;3;FALSE;5;FALSE;1;FALSE;2;FALSE)
Observe que apenas os valores do grupo A sobreviveram, os valores do grupo B agora são FALSE. Este array é retornado à função MODE, que ignora automaticamente os valores FALSE e retorna o número que ocorre com mais frequência, que é 3.
Nota: quando IF é usado desta forma para filtrar valores com uma operação de matriz, a fórmula deve ser inserida com control + shift + enter.
Critérios adicionais
Para aplicar mais de um critério, você pode aninhar outro IF dentro do primeiro IF:
(=MODE(IF(criteria1,IF(criteria2,data))))