¿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?

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.


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.


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


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í


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.


(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)))


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))

2
Preferimos respuestas que incluyen una explicación.
Scott
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.