Existe uma função no Excel para encontrar o valor absoluto máximo de um intervalo?


15

Estou procurando uma função no Excel que se parece com

= MAX(ABS(A1:A10))

exceto ABS()não leva um intervalo de números.

O melhor que posso encontrar é:

= MAX(ABS(MIN(A1:A10)),ABS(MAX(A1:A10)))

Ele faz o truque, mas é bagunçado como todos e não acredito que não há uma maneira melhor. Alguma ideia?

Respostas:


23

Você deve inseri-lo como uma fórmula de matriz. Faça isso pressionando Ctrl. + Shift+ Enter. A fórmula aparecerá como {=MAX(ABS(A1:A10))}se tivesse sido feita corretamente.


4
Nota para caveiras entorpecidas como eu: digite a fórmula e pressione Ctrl + Shift + Enter. Eu estava tentando pressionar ctrl + shift + enter primeiro e, em seguida, digite a fórmula, que realmente não funcionou tão bem. : P
Ben

O Excel não é fácil de usar quando se trata de fórmulas matriciais. Comportamentos é realmente irritante.
Pedro77

Não é obrigatória a utilização de uma fórmula de matriz (ver esta e esta Além disso, pode ser inconveniente..
sancho.s Restabeleça Monica

3
Isso retorna um erro se o intervalo também contém dados não numéricos (por exemplo, erros de texto ou fórmula)
CBRF23

22

Como não gosto de matrizes, usaria o seguinte:

=MAX(-MIN(range), MAX(range))

Isso funciona porque o único momento em que o absoluto do número mínimo seria maior que o valor máximo, se for um número negativo.


Isso funciona se o intervalo também contém dados não numéricos (por exemplo, erros de texto ou fórmula)
CBRF23

Bom, esse é um recurso que falta no excel, por que não max (abs ()) ??
Pedro77 31/05

@ Julie, sua resposta agora com mais de 5 anos ainda tem uma audiência. :) Você propõe uma alternativa que evita o uso da função array, que indica que considera uma vantagem. Você ainda não gosta de funções de matriz? Você poderia comentar por que você não gosta (ou não) de funções de matriz? Saber mais sobre suas considerações pode ajudar a mim e a outros leitores a avaliar qual solução gostaríamos de usar em que contexto.
Paul van Leeuwen

Isso também funciona no OpenOffice
Wolfgang Fahl


1

Esta solução VBA também funciona.

Public Function absMax(values As Range)
    'returns the largest absolute value in a list of pos and neg numbers

    Dim myArray() As Double, i As Integer, numel As Integer
    numel = values.count
    ReDim myArray(1 To numel)
    For i = 1 To numel
        myArray(i) = Abs(values(i))
    Next i
    absMax = WorksheetFunction.Max(myArray)

End Function
  1. Abra seu editor VBA ( Alt+ F11)
  2. Inserir um novo módulo no painel direito
  3. Copie e cole o código no módulo
  4. Volte para o Excel e use =absMax(A1:A3)

insira a descrição da imagem aqui


0
=IF(ABS(LARGE(A1:A10,1))>ABS(SMALL(A1:A10,1)),LARGE(A1:A10,1),SMALL(A1:A10,1))

Isso encontrará o valor com o maior valor absoluto fora do intervalo, mas ainda assim retornará o valor real com seu sinal original (+/-) e não com o valor absoluto.


(1) Como você sabe, esta não é uma resposta para esta pergunta. É a resposta para uma pergunta diferente. Preferimos manter as respostas com as perguntas que eles acompanham. Se você realmente deseja postar esta resposta, convém "fazer" a pergunta correspondente e respondê-la. ( Você pode fazer isso , mas, como você tem uma reputação baixa , pode ser necessário esperar várias horas antes de responder à sua própria pergunta.)
G-Man diz 'Reinstate Monica'

(2) O OP já tem uma resposta funcional para a pergunta, e a rejeita porque "é uma bagunça como todos, e eu não posso acreditar que não há uma maneira melhor". Então, por que postar uma resposta duas vezes maior que a que ele já tem? Por falar nisso, por que não dizer apenas =IF(ABS(MAX(A1:A10))>ABS(MIN(A1:A10)),MAX(A1:A10),MIN(A1:A10))?
G-Man diz 'Reinstate Monica'

@ G-Man Esta é a única solução de fórmula, publicada até agora, que mantém intacta a placa original, que não é explicitamente solicitada pelo OP, mas foi útil para mim. Discordo respeitosamente de ambas as suas avaliações.
Portland Runner

0

= MAX (MAX (X1: X5), ABS (MIN (X1: X5)))


então, como é diferente da resposta de Julie?
phuclv

Esta é uma resposta para a pergunta (tardia, sim). Semelhante ao Julie, sim, um pouco menos eficiente, talvez, mas IMHO é um pouco mais óbvio para alguém que herda a planilha.
Xenoid

-1
=IF(MAX(A1:A10)+MIN(A1:A10)>0, MAX(A1:A10), MIN(A1:A10))

2
Preferimos respostas que incluam uma explicação.
Scott Scott
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.