Criar formula com motivo que mais se repete


#1

Olá, tenho uma tabela de dados onde aponta as devoluções da empresa, preciso de uma formula que pegue a referência do cliente na tabela de dados e traga somente o motivo de devolução que mais se repete.
Segue abaixo imagem ilustrativa do que preciso.

Sem%20t%C3%ADtulo

Desde já agradeço.


#2

@cristianoBNU, esta pode ser uma missão mais difícil do que parece.

Para esta explicação, considerei sua tabela de dados começando na célula A1 e a tabela de resultados começando em A12.

Uma função que retorna o valor que mais se repete, a moda, é a função MODO. Só que ela aceita apenas números como argumento, não textos. Uma forma de lidar com isso é fazendo o uso de outra função, a função CORRESP, que faz a correspondência de um valor em um intervalo e retorna a posição do valor neste intervalo. Neste caso, a fórmula seria:

=MODO(CORRESP($B$2:$B$10;$B$2:$B$10;0))

Contudo, isso vai trazer a posição que mais se repete entre todas, o que ainda não é o que desejamos. Queremos saber com base na referência do cliente. Sendo assim, precisaremos lançar mão de uma fórmula matricial para selecionar apenas as células que correspondem a determinado cliente. Para isso utilizaremos a função condicional SE.

{=MODO(SE($A$2:$A$10=$A13;CORRESP($B$2:$B$10;$B$2:$B$10;0)))}

Repare nas chaves que envolvem a fórmula. Isso significa que trata-se de uma fórmula matricial. No entanto, você não deve digitá-las diretamente na fórmula, o Excel as colocará automaticamente assim que você solicitar que ele interprete a fórmula como uma matriz. Para fazer isso você deve, ao terminar de digitar a fórmula, antes de pressionar a tecla, Enter, pressionar as teclas, Ctrl + Shift + Enter. Pronto, isso fará com que o Excel entenda que você deseja que sua fórmula seja interpretada como matriz.

Agora, sim, temos a posição que mais se repete de acordo com o cliente especificado. Contudo, ainda não é o resultado que precisamos, afinal queremos saber qual é o motivo que mais se repete, não qual é sua posição. Eu disse posição? Agora que temos a posição do valor que procuramos, podemos utilizar a função ÍNDICE que retorna o valor de uma célula em um intervalo a partir de uma posição especificada.

{=ÍNDICE($B$2:$B$10;MODO(SE($A$2:$A$10=$A13;CORRESP($B$2:$B$10;$B$2:$B$10;0))))}

Creio que com isso chegamos ao resultado que buscávamos.


#4

Funcionou!

Apliquei a formula e foi corretamente, porem teve alguns clientes que não repetiam, ai apliquei SEERRO+PROCV, ficando assim a fórmula

{=SEERRO(ÍNDICE($C$3:$C$11;MODO(SE($B$3:$B$11=$B15;CORRESP($C$3:$C$11;$C$3:$C$11;0))));PROCV(B15;B3:C11;2;FALSO))}

Muito obrigado pela ajuda!!!