
Fórmula genérica
=MIN(UNIQUE(range,0,1))
Resumo
Para encontrar o valor único mínimo em um conjunto de dados, você pode usar a função UNIQUE junto com a função MIN. No exemplo abaixo, a fórmula em E5 é:
=MIN(UNIQUE(data,0,1))
onde "dados" é o intervalo nomeado B5: B14.
Em versões anteriores do Excel, você pode usar uma fórmula de matriz com base nas funções MIN, IF e CONT.SE como explicado a seguir.
Explicação
O objetivo neste exemplo é retornar o valor mínimo que é único, ou seja, o valor mínimo que ocorre apenas uma vez nos dados.
A função UNIQUE, nova no Excel 365, retornará uma lista exclusiva de valores de um conjunto de dados. Por padrão, esta é uma lista de qualquer valor que ocorre uma ou mais vezes nos dados.
UNIQUE tem um terceiro argumento opcional chamado "exatamente_uma vez" que limitará os resultados a valores que ocorrem apenas uma vez nos dados de origem. Para ativar esse recurso, o argumento precisa ser definido como TRUE ou 1.
Trabalhando de dentro para fora, a função UNIQUE é configurada assim:
UNIQUE(data,0,1)
Para array, fornecemos os dados do intervalo nomeado . Para o argumento by_col, usamos zero (0), uma vez que queremos valores únicos por linhas, não por colunas. Finalmente, para exatamente_uma vez, fornecemos 1, já que queremos apenas valores que ocorram apenas uma vez nos dados de origem.
Configurado desta forma, UNIQUE retorna os 4 valores que aparecem apenas uma vez:
(700;600;500;300) // result from unique
Essa matriz é retornada diretamente para a função MIN, que retorna o valor mínimo, 300, como o resultado final:
=MIN((700;600;500;300)) // returns 300
Fórmula de matriz com COUNTIF
Se você estiver usando uma versão do Excel sem a função UNIQUE, poderá encontrar o valor exclusivo mínimo com uma fórmula de matriz baseada nas funções CONT.SE, MIN e SE.
(=MIN(IF(COUNTIF(data,data)=1,data)))
Esta é uma fórmula de matriz e deve ser inserida com control + shift + enter, exceto no Excel 365.
Trabalhando de dentro para fora, a função CONT.SE é usada para gerar uma contagem de cada valor nos dados como este:
COUNTIF(data,data) // count all values
Como há 10 valores nos dados do intervalo nomeado , COUNTIF retorna uma matriz de 10 resultados:
(2;1;1;2;1;2;2;2;1;2)
Esta matriz contém a contagem de cada valor. Em seguida, testamos a matriz para valores iguais a 1:
(2;1;1;2;1;2;2;2;1;2)=1
Novamente, obtemos uma matriz com 10 resultados:
(FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE)
Cada valor TRUE corresponde a um valor nos dados de origem que ocorre apenas uma vez. Esse array é entregue diretamente à função IF, que o usa como um filtro. Somente os valores nos dados associados a TRUE entram no array retornado por IF, todos os outros valores são FALSE.
(FALSE;700;600;FALSE;500;FALSE;FALSE;FALSE;300;FALSE)
Essa matriz é retornada diretamente para a função MIN, que ignora automaticamente os valores lógicos e retorna o mínimo dos valores restantes, 300, como resultado final.