Ich versuche, das Delta zwischen zwei Zahlenreihen zu finden. Einige Zahlen sind positiv, andere negativ.
Die Verwendung der folgenden Formel funktioniert in etwa 99% der Fälle:
=IF(I18<0,I18+R18,IF(I18>0,I18-R18))
Wenn jedoch I18
und R18
sind negative Zahlen, ich brauche I18-R18
. Ich habe mehrere IF
AND
Aussagen ausprobiert , kann dies aber nicht richtig verstehen. Hoffentlich kann mich jemand in die richtige Richtung führen.
microsoft-excel
Dave
quelle
quelle
I18
Null ist.I18
undR18
sind negative Zahlen, ich braucheI18-R18
" Bist du sicher, dass du das meinst? Ich dachte, Sie wollten das Delta als absoluten Unterschied. WennI18
ist-2
undR18
ist-1
, wird Ihr Ergebnis sein-1
. Wollen Sie nicht in allen Fällen eine positive Zahl?=ABS(I18)-ABS(R18)
die gewünschte Ausgabe?A+B
wenn sowohl A als auch B Null sind.Antworten:
Es hört sich so an, als ob Sie nur den Unterschied (Delta) zwischen
I18
undR18
wollen und möchten, dass er immer positiv ist?Diese Formel wird das tun:
=ABS(I18-R18)
Es gibt die richtige Antwort, ob
I18
positiv, negativ oder null.quelle
IF()
korrekt funktionieren. Die anderen Antworten betrafen die gestellte Frage. Aber manchmal bringt Sie ein anderer Weg schneller zum richtigen Ort.Überprüfen Sie das Ergebnis, anstatt die Operanden auf Negativität zu überprüfen.
quelle
I18>R18
Vereinfachen wir Ihren ursprünglichen Code:
Jetzt sagen Sie, wenn X <0 und Y <0 ist, möchten Sie tatsächlich, dass das Ergebnis X - Y und nicht X + Y ist. OK.
Das steht geschrieben.
Wie oben erwähnt, haben Sie keinen Nullfall. Möglicherweise können Sie einen der LT / GT-Komparatoren in LE / GE ändern, indem Sie einfach ein Gleichheitszeichen hinzufügen - abhängig von Ihren Daten und Ihrer Logik.
quelle
If Y<0 {A} Else {B}
nur A und B, die identisch sind. Gibt es einen Tippfehler?Sie können Folgendes verwenden:
Der einzige Fehler, den ich dabei sehen kann, ist, was Sie in einem Fall tun, in dem
I18 = 0
Sie nichts dafür eingestellt haben.Wenn Sie etwas für diese Instanz hinzufügen möchten, siehe unten:
quelle
Ich wusste nichts über ABS. Ich würde vorschlagen
quelle
Dies funktionierte für mich -> IF (UND (I18 <0, R18 <0), I18-R18, IF (I18 <0, ((R18-I18) * - 1), IF (I18> = 0, I18-R18) )))
Dies umfasst alle Szenarien: Variable A | Variable B + ve | + ve + ve | -ve -ve | + ve -ve | -ve
quelle
+
/-
) Variablen ist trivial und zeigt nichts, um Ihre Antwort zu verdeutlichen. Wenn Sie eine Antwort auf eine so unklare Frage wie diese veröffentlichen möchten, ist es hilfreich zu erklären, welche Frage Sie Ihrer Meinung nach beantworten. (2) Was auch immer Sie tun, Ihre Formel scheint unnötig komplex zu sein. Es wäre hilfreich zu erklären, was es tut. …………………………………………………………………………………………………………………………………………………………………………………………………………………… Bearbeiten Sie Ihre Antwort, um sie klarer und vollständiger zu gestalten.Ich bin gerade auf eine Situation gestoßen (Messung der Farblaborwerte), in der ich nicht nur den Unterschied zwischen x und y, sondern auch die positive oder negative Delta-Bewegung benötige. Normalerweise ist -5 minus -2 = -3, aber ich möchte zeigen, dass das Delta tatsächlich in der positiven Richtung -3 liegt, ist nicht das, wonach ich suche:
= IF (A1> B1, ABS (A1-B1) * -1, ABS (A1-B1))
Einfach ausgedrückt, wenn der 2. (neuere) Messwert kleiner ist, weiß ich, dass das Ergebnis eine negative Bewegung (also * -1) ist und sich weiter nach unten auf der negativen Seite der Achse bewegt hat. Andernfalls funktioniert der reine ABS-Wert, wenn der zweite Messwert größer ist, da der Unterschied in positiver Richtung liegt.
quelle