Probleme mit char(60) bei der Ausführung von sumif()

Probleme mit char(60) bei der Ausführung von sumif()

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 Sydneygemäß ihrem ASCII-Wert (oder Unicode-Wert?) interpretiert. Daher sind die Zeichenfolgen mit führenden Zeichen Azu Rund <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 <Sydneyund 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 sumifstandardmäßig jede Zelle in B1:B3 mit der gesamten Zeichenfolge vergleicht -Sydneyund nur dann die Summe berechnet, wenn die beiden Zeichenfolgen identisch sind.

verwandte Informationen