Wenn ich die integrierte Funktion „sumif“ verwende (Excel Microsoft Office Home & Student 2016 Version 1708), erhalte ich das folgende Verhalten:
amount description
4 '<Sydney
4 '<Melbourne
=sumif(b1:b3,"'<Sydney",a1:a3)
Sumif gibt 8 zurück.
Das ist falsch. Die Funktion „Summewenn“ sollte 4 zurückgeben.
Beachten Sie bitte die Verwendung von ' zum Escapen von Zeichenfolgen, wenn Sie Text in die Zelle eingeben.
Irgendwelche Ideen, was ich hier falsch mache?
Bemerkenswerterweise scheint das Problem mit der Verwendung der spitzen Klammer (char(60)) zusammenzuhängen. Ich weiß, dass ich dieses Problem mit der Funktion substitute() umgehen könnte – aber ich würde gerne verstehen, was die Ursache dieses Problems ist und wie ich Excel anweisen kann, char(60) als Zeichenfolge zu behandeln.
Irgendwelche Ideen?
Bitte beachten Sie: Es gibt keine Probleme mit der Funktion „sumif“, wenn nur der Bindestrich (char(45)) verwendet wird. Beispiel:
amount description
4 '-Sydney
4 '-Melbourne
=sumif(b1:b3,"'-Sydney",a1:a3)
Dies ergibt korrekt die Summe 4.
Antwort1
Das Problem liegt bei
=sumif(b1:b3,"<Sydney",a1:a3)
(Ich gehe davon aus, dass der Bedingungsparameter "<Sydney"
statt "'<Sydney"
wie in der Frage angegeben lautet, da er 0 zurückgibt.)
Der Bedingungsparameter behandelt den führenden <
Vergleich als „kleiner als“. Die Bedingung "<Sydney"
wird daher als kleiner als die Zeichenfolge Sydney
gemäß ihrem ASCII-Wert (oder Unicode-Wert?) interpretiert. Daher sind die Zeichenfolgen mit führenden Zeichen A
zu R
und <
alle „kleiner als“ die Zeichenfolge Sydney
.
Um das Problem zu beheben, können Sie die Funktion wie folgt ändern:
=sumif(b1:b3,"=<Sydney",a1:a3)
Der =
Bedingungsparameter weist Excel an, „nur die Zelle zu summieren,ist gleichzu <Sydney
und gibt somit das richtige Ergebnis zurück.
Versuchen Sie zur weiteren Veranschaulichung diese Beispieldaten:
[Col A] [Col B]
[Row 1] 1 <
[Row 2] 2 A
[Row 3] 4 S
[Row 4] 8 Z
=SUMIF(B1:B4,"<S",A1:A4) [3]
=SUMIF(B1:B4,"<=S",A1:A4) [7]
=SUMIF(B1:B4,"=S",A1:A4) [4]
=SUMIF(B1:B4,">S",A1:A4) [8]
=sumif(b1:b3,"-Sydney",a1:a3)
funktioniert wie erwartet, da dies -
nichts bedeutet und Excel daher sumif
standardmäßig jede Zelle in B1:B3 mit der gesamten Zeichenfolge vergleicht -Sydney
und nur dann die Summe berechnet, wenn die beiden Zeichenfolgen identisch sind.