Gibt es in Excel eine Funktion, um den maximalen Absolutwert eines Bereichs zu ermitteln?

15

Ich suche nach einer Funktion in Excel, die ungefähr so ​​aussieht

= MAX(ABS(A1:A10))

außer ABS()nimmt keinen Bereich von Zahlen an.

Das Beste, was ich mir einfallen lassen kann, ist:

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

Es macht den Trick, aber es ist verdammt chaotisch und ich kann nicht glauben, dass es keinen besseren Weg gibt. Irgendwelche Ideen?

Ben
quelle

Antworten:

23

Sie müssen es als Matrixformel eingeben. Drücken Sie dazu Ctrl. Shift++ Enter. Die Formel wird so angezeigt, als {=MAX(ABS(A1:A10))}ob sie korrekt ausgeführt wurde.

Hervorragend
quelle
4
Hinweis für Taubheitsschädel wie mich: Geben Sie die Formel ein und drücken Sie Strg + Umschalt + Eingabetaste. Ich habe versucht, zuerst Strg + Umschalt + Eingabetaste zu drücken und dann die Formel einzugeben, die nicht so gut funktioniert hat. : P
Ben
Excel ist in Bezug auf Matrixformeln nicht benutzerfreundlich. Es ist wirklich ärgerlich, wie sich das verhält.
Pedro77
Es ist nicht zwingend eine Matrixformel (siehe verwendet diese und diese Außerdem könnte es unbequem sein..
sancho.s wieder einzusetzen Monica
3
Dies gibt einen Fehler zurück, wenn Ihr Bereich auch nicht numerische Daten enthält (z. B. Text- oder
Formelfehler
22

Ich mag keine Arrays, daher würde ich Folgendes verwenden:

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

Dies funktioniert, weil der absolute Wert der minimalen Zahl nur dann höher ist als der maximale Wert, wenn es sich um eine negative Zahl handelt.

Julie
quelle
Dies funktioniert, wenn Ihr Bereich auch nicht numerische Daten enthält (z. B. Text- oder
Formelfehler
Nizza, das ist ein fehlendes Feature in Excel, warum nicht max (abs ()) ??
Pedro77
@ Julie Ihre jetzt + 5 Jahre alte Antwort hat noch ein Publikum. :) Sie schlagen eine Alternative vor, die die Verwendung der Array-Funktion vermeidet. Sie geben an, dass Sie ein Plus betrachten. Mögen Sie Array-Funktionen immer noch nicht? Können Sie erklären, warum Sie Array-Funktionen nicht mögen (oder nicht mochten)? Wenn Sie mehr über Ihre Überlegungen wissen, können Sie mir und anderen Lesern möglicherweise helfen, zu bewerten, welche Lösung wir in welchem ​​Kontext verwenden möchten.
Paul van Leeuwen
Dies funktioniert auch in OpenOffice
Wolfgang Fahl
2

Probieren Sie diese Formel (von hier )

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

Es kombiniert:

  • Die Vorteile einer nicht-Array - Formel, wie sie in dieser Antwort oben (siehe dies für die Vorteile des nicht-Array).
  • Eingabe des Zielbereichs nur einmal, wie in der obigen Antwort (weniger fehleranfällig und einfacher zu ändern).
sancho.s Setzen Sie Monica wieder ein
quelle
1

Diese VBA-Lösung funktioniert auch.

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. Öffnen Sie Ihren VBA-Editor ( Alt+ F11)
  2. Fügen Sie ein neues Modul in den rechten Bereich ein
  3. Kopieren Sie den Code und fügen Sie ihn in das Modul ein
  4. Gehen Sie zurück zu Excel und verwenden Sie =absMax(A1:A3)

Bildbeschreibung hier eingeben

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

Dadurch wird der Wert mit dem größten Absolutwert außerhalb des Bereichs ermittelt, der tatsächliche Wert wird jedoch mit dem ursprünglichen Vorzeichen (+/-) und nicht mit dem absoluten Wert zurückgegeben.

Rishi
quelle
(1) Wie Sie wissen, ist dies keine Antwort auf diese Frage. Es ist die Antwort auf eine andere Frage. Wir bevorzugen es, Antworten mit den Fragen zu behalten, mit denen sie verbunden sind. Wenn Sie diese Antwort wirklich veröffentlichen möchten, möchten Sie möglicherweise die entsprechende Frage „stellen“ und dann beantworten. ( Sie dürfen das tun , aber da Sie einen schlechten Ruf haben , müssen Sie möglicherweise mehrere Stunden warten, bevor Sie Ihre eigene Frage beantworten können.)
G-Man sagt, dass Monica am
(2) Das OP hat bereits eine funktionierende Antwort auf die Frage und lehnt sie ab, weil "es ist verdammt chaotisch und ich kann nicht glauben, dass es keinen besseren Weg gibt." Warum also eine Antwort posten, die doppelt so lang ist wie die, die er hat? hat schon? Was das angeht, warum nicht einfach sagen =IF(ABS(MAX(A1:A10))>ABS(MIN(A1:A10)),MAX(A1:A10),MIN(A1:A10))?
G-Man sagt, dass Monica am
@ G-Man Dies ist die einzige bisher gepostete Formellösung, die das ursprüngliche Vorzeichen intakt hält, was vom OP nicht ausdrücklich verlangt wird, aber für mich hilfreich war. Ich bin mit beiden Einschätzungen nicht einverstanden.
Portland Runner
0

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

TAZIOU
quelle
Wie unterscheidet es sich von Julies Antwort?
Phuclv
Dies ist eine Antwort auf die Frage (verspätet, ja). Ähnlich wie bei Julie, ja, vielleicht etwas weniger effizient, aber meiner Meinung nach ein bisschen offensichtlicher für jemanden, der die Tabelle erbt.
Xenoid
-1
=IF(MAX(A1:A10)+MIN(A1:A10)>0, MAX(A1:A10), MIN(A1:A10))
Andrew KIM
quelle
2
Wir bevorzugen Antworten mit einer Erklärung.
Scott