Excel: Obtendo os cinco principais valores de uma linha em uma lista separada por vírgulas

Excel: Obtendo os cinco principais valores de uma linha em uma lista separada por vírgulas
+-----+-----+-----+-----+-----+-----+-----+-----+
|     | A   | B   | C   | D   | E   | F   | G   |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 1   | 5   | 6   | 5   | 9   | 4   | 8   | 3   |
+-----+-----+-----+-----+-----+-----+-----+-----+

Considerando a folha acima. Estou procurando uma maneira no Excel/Calc de obter os 5 principais números.

A única maneira que consigo pensar em fazer isso até agora é usar 5 funções GRANDES diferentes

=LARGE(A1:G1, 1)
=LARGE(A1:G1, 2)
=LARGE(A1:G1, 3)
=LARGE(A1:G1, 4)
=LARGE(A1:G1, 5)

Isso me daria os cinco números mais altos. Fiquei me perguntando se havia uma maneira de fazer isso com uma única fórmula que retornaria:

9, 8, 6, 5, 5

em uma única célula?

Outra dúvida, em vez de imprimi-los, gostaria também de SOMAR os números em uma célula diferente.

Responder1

Você pode usar TEXTJOIN() como uma fórmula de matriz.

=TEXTJOIN(",",TRUE,LARGE(A1:G1,ROW($1:$5)))

Quando ROW($1:$5)inserido como uma matriz retorna a matriz {1,2,3,4,5}retornando os cinco maiores números para TEXTJOIN.

Você força o Array confirmando a fórmula com Ctrl-Shift-Enter em vez de Enter ao sair do modo de edição.

TEXTJOIN está disponível no Office 365 Excel.

Para obter a soma podemos usar o mesmo LARGE dentro de um SUMPRODUCT:

=SUMPRODUCT(LARGE(A1:G1,ROW($1:$5)))

insira a descrição da imagem aqui

Para versões mais antigas, você está preso a:

=LARGE(A1:G1, 1) & "," & LARGE(A1:G1, 2) & "," & LARGE(A1:G1, 3) & "," & LARGE(A1:G1, 4) & "," & LARGE(A1:G1, 5) 

Ou células auxiliares.

informação relacionada