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?

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.


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.


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


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


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.


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


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

2
Wir bevorzugen Antworten mit einer Erklärung.
Scott
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.