¿Existe una función en Excel para encontrar el valor absoluto máximo de un rango?

15

Estoy buscando una función en Excel que se parezca a

= MAX(ABS(A1:A10))

excepto ABS()que no toma un rango de números.

Lo mejor que se me ocurre es:

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

Hace el truco, pero es desordenado, y no puedo creer que no haya una mejor manera. ¿Algunas ideas?

Ben
fuente

Respuestas:

23

Debe ingresarlo como una fórmula de matriz. Hazlo presionando Ctrl. + Shift+ Enter. La fórmula aparecerá como {=MAX(ABS(A1:A10))}si estuviera hecha correctamente.

Excellll
fuente
44
Nota para adormecer cráneos como yo: ingrese la fórmula y luego presione Ctrl + Shift + Enter, estaba tratando de presionar ctrl + shift + enter primero, luego ingrese la fórmula, que realmente no funcionó tan bien. : P
Ben
Excel no es fácil de usar cuando se trata de fórmulas matriciales. Su comportamiento es realmente molesto.
Pedro77
No es obligatorio usar una fórmula de matriz (vea esto y esto . Además, podría ser un inconveniente.
sancho.s Reinstate Monica el
3
Esto devuelve un error si su rango también contiene datos no numéricos (por ejemplo, errores de texto o fórmula)
CBRF23
22

No me gustan las matrices, así que usaría lo siguiente:

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

Esto funciona porque la única vez que el absoluto del número mínimo sería mayor que el valor máximo si es un número negativo.

Julie
fuente
Esto funciona si su rango también contiene datos no numéricos (por ejemplo, errores de texto o fórmula)
CBRF23
Bien, esta es una característica que falta en Excel, ¿por qué no max (abs ()) ??
Pedro77
@Julie, tu respuesta de más de 5 años todavía tiene una audiencia. :) Usted propone una alternativa que evita el uso de la función de matriz, que indica que considera una ventaja. ¿Todavía no te gustan las funciones de matriz? ¿Podría comentar por qué no le gustan (o no le gustan) las funciones de matriz? Saber más sobre sus consideraciones podría ayudarnos a mí y a otros lectores a evaluar qué solución nos gustaría usar en qué contexto.
Paul van Leeuwen
Esto también funciona en OpenOffice
Wolfgang Fahl
2

Prueba esta fórmula (desde aquí )

=MAX(INDEX(ABS(A1:A10),0,1))

Combina:

  • Los beneficios de una fórmula sin matriz, como en esta respuesta anterior (vea esto para conocer los beneficios de la no matriz).
  • Ingresando el rango objetivo solo una vez, como en esta respuesta anterior (menos propenso a errores y más fácil de modificar).
sancho.s Restablece a Monica
fuente
1

Esta solución VBA también 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. Abre tu editor de VBA ( Alt+ F11)
  2. Inserte un nuevo módulo en el panel derecho
  3. Copie y pegue el código en el módulo
  4. Regrese a Excel y use =absMax(A1:A3)

ingrese la descripción de la imagen aquí

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

Esto encontrará el valor con el valor absoluto más grande fuera del rango, pero aún así devolverá el valor real con su signo original (+/-) y no el valor absoluto.

Rishi
fuente
(1) Como saben, esta no es una respuesta a esta pregunta. Es la respuesta a una pregunta diferente. Preferimos mantener las respuestas con las preguntas que acompañan. Si realmente desea publicar esta respuesta, es posible que desee "hacer" la pregunta correspondiente y luego responderla. ( Se le permite hacer eso , pero, dado que tiene una reputación baja , es posible que tenga que esperar varias horas antes de poder responder a su propia pregunta).
G-Man dice 'Restablecer a Monica' el
(2) El OP ya tiene una respuesta funcional a la pregunta, y la rechaza porque "es desordenado y no puedo creer que no haya una mejor manera". Entonces, ¿por qué publicar una respuesta que es el doble de la que él tiene? ¿ya tiene? Para el caso, ¿por qué no decir solo =IF(ABS(MAX(A1:A10))>ABS(MIN(A1:A10)),MAX(A1:A10),MIN(A1:A10))?
G-Man dice 'Restablecer a Monica' el
@ G-Man Esta es la única solución de fórmula, publicada hasta ahora, que mantiene intacto el letrero original, que no fue solicitado explícitamente por el OP pero fue útil para mí. Respetuosamente estoy en desacuerdo con sus dos evaluaciones.
Portland Runner
0

= MAX (MÁX (X1: X5), ABS (MIN (X1: X5)))

TAZIOU
fuente
Entonces, ¿cómo es diferente de la respuesta de Julie?
phuclv
Esta es una respuesta a la pregunta (tardía, sí). Similar a Julie, sí, un poco menos eficiente, tal vez, pero en mi humilde opinión, un poco más obvio para alguien que hereda la hoja de cálculo.
xenoid
-1
=IF(MAX(A1:A10)+MIN(A1:A10)>0, MAX(A1:A10), MIN(A1:A10))
Andrew KIM
fuente
2
Preferimos respuestas que incluyen una explicación.
Scott