Angenommen, meine Zelle A1 in einer Excel-Tabelle enthält die Nummer 3 . Wenn ich die Formel eingebe
= - A1^2 + A1
in A2 zeigt dann A2 die Zahl 12, wenn es -6 (oder -9 + 3) zeigen sollte
Warum ist das so? Wie kann ich dieses irreführende Verhalten verhindern?
microsoft-excel
worksheet-function
notation
Rodolfo Oviedo
quelle
quelle
Antworten:
Kurze Antwort
Um dieses Problem zu lösen, fügen Sie einfach eine 0 vor dem Gleichheitszeichen hinzu
oder fügen Sie ein paar Klammern hinzu, um die Standardreihenfolge der Operationen zu erzwingen
oder ersetzen Sie das Minuszeichen durch die übliche Interpretation der Multiplikation mit -1
In diesem speziellen Fall, in dem Sie den zusätzlichen Ausdruck + A1 haben, ist die beste Lösung die von @ lioness99a vorgeschlagene:
Ausführliche Erklärung
Gemäß den Konventionen von Excel
ist gleich (-3) ^ 2 = 9, während
gleich 0-9 = -9.
Warum ändert das Hinzufügen einer 0 das Ergebnis?
Ohne vorangestelltes Minuend wird das Minuszeichen in -3 ^ 2 als Negationsoperator betrachtet. Dies ist ein unärer Operator (mit nur einem Argument), der das Vorzeichen der folgenden Zahl (oder des folgenden Ausdrucks) ändert. Das Minuszeichen in 0-3 ^ 2 ist jedoch ein Subtraktionsoperator , bei dem es sich um einen binären Operator handelt, der das Folgende
-
von dem Vorhergehenden subtrahiert-
. Gemäß den Konventionen von Excel wird der Exponentiationsoperator nach dem Negationsoperator und vor dem Subtraktionsoperator^
berechnet . Siehe "Berechnungsoperatoren und Rangfolge in Excel" , Abschnitt "Die Reihenfolge, in der Excel Vorgänge in Formeln ausführt".Die mathematische Standardkonvention lautet, dass die Exponentiation berechnet wird, bevor sowohl die Negation als auch die Subtraktion durchgeführt werden, oder einfacher gesagt,
^
bevor sie berechnet wird-
. Schändlicherweise wählte Excel andere Konventionen als Algebra - Regeln, Schulbücher, akademisches Schreiben, wissenschaftliche Taschenrechner, Lotus 1-2-3, Mathematica, Maple, rechnerorientierte Sprachen wie Fortran oder Matlab, MS Works und ... VBA (the verwendete Sprache zum Schreiben von Excel-Makros). Leider folgen Calc from LibreOffice und Google Sheets aus Gründen der Kompatibilität mit Excel der gleichen Konvention. Wenn Sie jedoch einen Ausdruck in das Suchfeld oder die Leiste von Google eingeben, erhalten Sie hervorragende Ergebnisse. Wenn Sie die Eingabetaste drücken, wird die Reihenfolge der Berechnungen in Klammern angegeben. Eine Diskussion, bei der ein Mathematiker die Argumente eines "Informatikers" zunichte macht, der den Vorrang der Verneinung vor der Entlarvung verteidigt: http://mathforum.org/library/drmath/view/69058.htmlAllgemeine Problemumgehungen
Wenn du rechnen willst
Fügen Sie eine 0 vor dem Gleichheitszeichen hinzu
oder fügen Sie ein paar Klammern hinzu, um die Standardreihenfolge der Operationen zu erzwingen
oder ersetzen Sie das Minuszeichen durch die übliche Interpretation der Multiplikation mit -1
Von den oben genannten Alternativen bevorzuge ich das Hinzufügen einer 0 vor dem Minuszeichen, da dies am praktischsten ist. Wenn der Ausdruck bereits in Klammern steht, vermeide ich das Hinzufügen von Klammern. Starke Verwendung von Klammern erschwert das Lesen, Debuggen und Schreiben von Ausdrücken.
Wenn ein zusätzlicher Term hinzugefügt wird (oder ohne das Problem der geraden Leistung abgezogen wird),
Die beste Lösung ist, zuerst das ExtraTerm zu platzieren.
Ein Kommentar zu einer anderen Antwort besagt, dass Sie sich der nicht standardmäßigen Vorrangregel nur bewusst sein müssen, wenn auf ein Gleichheitszeichen (= -) ein Minuszeichen folgt. Es gibt jedoch auch andere Beispiele wie = exp (-x ^ 2) oder = (- 2 ^ 2 = 2 ^ 2), bei denen vor dem Minuszeichen kein Minuend steht.
Vielen Dank an @BruceWayne für das Vorschlagen einer kurzen Antwort, die ich am Anfang geschrieben habe.
Sie könnten interessiert sein an Laut Excel, 4 ^ 3 ^ 2 = (4 ^ 3) ^ 2. Ist das wirklich die mathematische Standardkonvention?
quelle
Etwas mehr Succint als Rodolfos Antwort können Sie verwenden:
(Edit: Ich habe überhaupt nicht gesehen, dass es sich um eine Selbstfrage / -antwort handelt.)
quelle
Ein Lead
-
wird als Teil des ersten Terms betrachtet.=-3^2
wird verarbeitet als(-3)^2 = 9
Mit einer Null am Anfang wird es stattdessen als normale Subtraktion behandelt.
=0-3^2
wird verarbeitet als0 - 3^2 = -9
Und wenn Sie zwei Operatoren haben, passiert dasselbe.
=0--3^2
wird verarbeitet als0 - (-3)^2 = -9
und=0+-3^2
wird verarbeitet als0 + (-3)^2 = 9
quelle
Weil Excel Ihre Gleichung folgendermaßen interpretiert:
(-x) ^ 2 + x
Wann wollten Sie:
- (x ^ 2) + x
Um diese Art von unerwünschtem Verhalten zu verhindern, empfinde ich es als bewährte Methode, Klammern zu verwenden, um Ihr eigenes Prioritätssystem zu definieren, da Negation nicht dasselbe ist wie Subtraktion und daher nicht von PEMDAS abgedeckt wird. Ein Beispiel wäre:
(- (x ^ 2)) + x
Es mag übertrieben sein, aber so kann ich garantieren, dass Excel sich so verhält, wie ich es möchte.
quelle
x - x^2
. Dies stellt sicher, dass - als binärer Subtraktionsoperator interpretiert wird.Der Ausdruck
= - A1^2 + A1
ist Excel-spezifisch und muss daher den Excels-Regeln entsprechen. Im Gegensatz zu einigen anderen Antworten gibt es hier keine korrekte Rangfolge. Es gibt lediglich unterschiedliche Konventionen, die von unterschiedlichen Anwendungen übernommen werden. Für Ihre Referenz ist die von Excel verwendete Rangfolge:Welche Sie mit Klammern überschreiben können.
quelle
-
kann unär oder binär sein. Dies bedeutet jedoch keine Reihenfolge der Operationen. Andere Sprachen machen das richtig: In Python, Ruby, Octave, Awk und Haskell (die ersten fünf Sprachen mit einem Potenzierungsoperator, der in den Sinn kam) wird-3 ** 2
immer nach ausgewertet-9
. Warum? Weil das die richtige Antwort ist.Sie können es so oder so haben:
Gibt eine 12 zurück , aber:
wird eine -6 zurückgeben
Wenn Sie das Gefühl haben, dass das Zurückgeben von 12 gegen den gesunden Menschenverstand verstößt; Beachten Sie, dass Google Sheets dasselbe tut.
quelle
=A1-A1^2
auch -6 zurückAlternativ könnten Sie einfach tun
= A1 - A1^2
da
-y + x = x-y
quelle
Andere haben geantwortet: "Wie kann ich das vermeiden?" Teil der Frage. Ich werde dir sagen, warum es passiert.
Dies ist darauf zurückzuführen, dass PCs 1979 nur über sehr begrenzte Speicher- und Verarbeitungsmöglichkeiten verfügten.
VisiCalc wurde 1979 für Apple II eingeführt, zwei Jahre vor der ersten Veröffentlichung des IBM-PCs (auf den die meisten modernen Desktop- und Laptop-Computer ihre direkten Vorfahren zurückführen). Der Apple II konnte mit bis zu 64 KB (65.536 Byte) RAM ausgestattet werden, und VisiCalc benötigte mindestens 32 KB, um ausgeführt zu werden. Nebenbei bemerkt gilt VisiCalc als die "Killeranwendung" für das Apple II und vielleicht sogar für persönliche Mikrocomputer im Allgemeinen.
Je weniger Sonderfälle und weniger Vorausschauen für Formeln erforderlich sind, desto einfacher (und folglich auch kleiner) kann der Code zum Parsen einer Kalkulationstabellenformel erstellt werden. Es wäre daher sinnvoll, den Benutzer in Eckfällen etwas expliziter zu machen, um größere Tabellenkalkulationen verarbeiten zu können. Denken Sie daran, dass Sie selbst mit einem High-End-Apple II nur wenige zehn Kilobyte zum Spielen hatten, nachdem der für die Anwendung erforderliche Speicher berücksichtigt wurde. Bei einem System mit geringem Arbeitsspeicher (48 KB RAM war keine ungewöhnliche Konfiguration für einen "ernsthaften" Computer) war die Grenze sogar noch niedriger.
Als IBM seinen PC vorstellte, wurde eine Portierung von VisiCalc auf die neue Architektur vorgenommen. Wikipedia bezeichnet diesen Port als "Bug-kompatibel" , so dass Sie genau dasselbe Parsing-Verhalten für Formeln erwarten würden, selbst wenn das System technisch zu komplexerem Parsing fähig wäre.
Ab 1982 konkurrierte Microsoft mit VisiCalc und später mit 1-2-3 mit ihrer plattformübergreifenden Multiplan -Tabelle. Später wurde Lotus 1-2-3 1983 speziell für den IBM-PC eingeführt und löste VisiCalc schnell ab. Um den Übergang zu vereinfachen, war es sinnvoll, dass beide Formeln auf die gleiche Weise wie VisiCalc analysiert wurden. Das eingeschränkte Vorausschau-Verhalten würde also fortgesetzt.
1985 führte Microsoft Excel ein , ursprünglich für den Macintosh und ab Version 2 1987 auf dem PC. Um den Übergang zu vereinfachen, war es wiederum sinnvoll, das bereits seit fast einem Jahrzehnt gewohnte Verhalten beim Parsen von Formeln fortzusetzen.
Bei jedem Upgrade von Excel bestand die Möglichkeit, das Verhalten zu ändern. Es würde jedoch nicht nur erforderlich sein, dass Benutzer eine neue Methode zum Eingeben von Formeln erlernen, sondern auch die Kompatibilität mit Tabellenkalkulationen, die mit der vorherigen Version verwendet oder erstellt wurden, beeinträchtigen. In einem immer noch sehr wettbewerbsintensiven Markt mit mehreren kommerziellen Unternehmen, die in jedem Bereich miteinander konkurrieren, wurde wahrscheinlich die Entscheidung getroffen, das gewohnte Verhalten der Benutzer beizubehalten.
Schneller Vorlauf bis 2019, und wir bleiben bei den Entscheidungen zum Parsing-Verhalten der Formeln, die ursprünglich zwischen 1978 und 1979 getroffen wurden.
quelle
Der Ausdruck
- A1^2
enthält zwei Operatoren, nämlich den Operator für die unäre Negation-
und den Operator für die binäre Exponentiation^
. Ohne Klammern kann es zwei Interpretationen geben. Entweder:oder:
Der erste sagt tun zuerst die Potenzierung mit Operanden
A1
und2
, und führen Sie dann die Negation darauf.Der zweite Befehl besagt, dass Sie zuerst die Negation für den Operanden ausführen
A1
und dann die Potenzierung für das Ergebnis von und verwenden2
.Wie in den Kommentaren zur Frage gesagt wurde, haben Kräfte in jeder vernünftigen Umgebung eine höhere Priorität als Minuszeichen. Das heißt, es ist am besten, wenn ein System das erste übernimmt.
Excel bevorzugt jedoch den zweiten.
Die Lektion lautet: Wenn Sie sich nicht sicher sind, ob Ihre Umgebung vernünftig ist oder nicht, schließen Sie die Klammer ein, um auf der sicheren Seite zu sein. Also schreibe
-(A1^2)
.quelle
Dies ist kein Problem mit Excel, sondern mit Exponenten und Negativen. Wenn Sie eine Zahl nehmen und auf eine gerade Potenz bringen, heben Sie das negative Vorzeichen auf.
Sie müssen Klammern und ein Vielfaches von verwenden
-1
quelle
-x^2
x = 3 undx^2
x = -3.-x^2+x
wird niemals 12 erreichen: wolframalpha.com/input/?i=-x%5E2%2Bx-x ^ 2 + x mit x = 3 Dies ist ein Beispiel für eine quadratische Gleichung. Die Gleichung kann wie folgt geschrieben werden: -3 * -3 + 3: Die Multiplikation hat Vorrang vor der Addition, daher wird das Ergebnis wie folgt geschrieben: 9 + 3 : Warum = 9, weil eine negative Zahl x eine negative Zahl ein positives Ergebnis ergibt. Dies kann mit einem Taschenrechner, Rechenschieber oder einem Computerprogramm überprüft werden. Endergebnis 9 + 3 = 12
quelle
Es ist nur eine wirklich einfache Mathematik.
Regel 1. Selbst Multiplikationen von negativen Zahlen würden ein positives Ergebnis liefern:
Dies liegt an der Tatsache, dass sich Minuspunkte paarweise aufheben.
Regel 2. Die Potenz jeder Zahl gibt an, dass diese Zahl mehrmals mit sich selbst multipliziert wird.
Und wenn Sie Regel Nummer 1 sehen können ..
Regel 3. Multiplikation und Division haben höhere Priorität als Addition und Subtraktion.
Und da ist die Antwort auf deine Frage:
Kombiniere alle 3 Regeln von vorher:
Mein Rat an Sie ist, jedes Jahr etwas Zeit zu verbringen und die Grundregeln der Mathematik immer wieder auf den neuesten Stand zu bringen.
Es ist in der Tat eine Fähigkeit, die Sie beibehalten und in einem großen Teil der Welt den Überblick behalten können, wenn Sie die Grundlagen der Mathematik kennen.
quelle
+-*/
, aber nicht für unäre Operatoren wie-
oder+
. Vorrang des Leistungs Operator höher als*
und/
aber unären Operatoren haben sogar eine höhere Priorität