Tag Archives: und

Ich achte auf meine Ernährung: Was schmeckt, wird gegessen.

Excelschulung. Eine junge Teilnehmerin. Azubi.

Sie zeigt mir Beispiele von ihrem Lehrer, die sie verstehen und können muss, da ähnliche Beispiele Teile der Prüfung von Excel sind. Geübt werden sollen einige Formeln:

Der prozentuale Anteil wird berechnet:

=WENN(UND(A15<>"";B15<>"");D15*100/$D$25;"")

Okay, mit der Funktion

UND(A15<>"";B15<>"")

wird überprüft, ob die Zellen der Spalte A und B gefüllt sind. Eine hübsche Übung, um UND und WENN zu üben.

Dennoch: WENNFEHLER wäre sicherlich besser gewesen, um ALLE Fehler abzufangen.

Aber noch mehr irritiert mich die Berechnung

D15*100/$D$25

Warum wird mit 100 multipliziert? Ich hätte den Anteil von einer Dezimalzahl in eine Prozentzahl formatiert. Und damit weitergerechnet.

Wäre das nicht eher im Sinne von Excel gewesen?

Ich bin Neptun, Herr des Wassers! Spürt meine Macht, ihr Untertanen! – Alter, hör auf, meine Goldfische mit einer Gabel zu jagen!

Einfach nicht aufgepasst. Dabei weiß ich das eigentlich!

In einem großen, langen VBA-Programm werden Daten aus verschiedenen Dateien des gleichen Ordners, in dem sich die Datei mit dem Code befindet, zusammengefasst. Diese Dateien soll geöffnet werden, Inhalt herauskopiert und danach wieder geschlossen werden.

Ich überprüfe im ersten Schritt, ob es sich um eine XLSM oder XLSB-Datei handelt, denn nur dort liegen die gesuchten Daten:

If Right(strDatei, 4) = "xlsm" Or Right(strDatei, 4) = "xlsb" Then

Klappt wunderbar.

Fast.

Denn auch die Datei, in der sich der Code befindet, wird bearbeitet, also geschlossen. Das ist nicht Sinn der Sache. Also schließe ich aus:

If Right(strDatei, 4) = "xlsm" Or Right(strDatei, 4) = "xlsb" And strDatei <> ThisWorkbook.Name Then

und wundere mich, warum es nicht funktioniert. Die aktuelle Datei wird immer noch geschlossen. Seltsam.

Ich prüfe:

der Inhalt von strDatei entspricht ThisWorkbook.Name. Warum fließt diese Abfrage in die Bedingung, warum wird sie ausgewertet, oder genauer: warum liefert die IF-Verzweigung den Wert Wahr? Es dauert ein paar Sekunden, dann dämmert es mir:

AND ist stärker als OR. Die IF-Verzeigung überprüft, ob die Datei strDatei die Endung XLSB hat UND die gleiche Datei ist. Nein – ich laufende Datei habe die Endung XLSM. Oder: hast du die Endung XLSM? ja – DAS ist korrekt. Also wird die Bedingung ausgewertet. *ggrrrrr* Also noch einmal – diesmal mit Klammer:

If (Right(strDatei, 4) = "xlsm" Or Right(strDatei, 4) = "xlsb") And strDatei <> ThisWorkbook.Name Then

Und das funktioniert! Ich bin glücklich!

Hamburg UND Berlin

Seltsam – ich bin sicher, dass Kunden aus Hamburg in unserer Liste vorhanden sind – Excel filtert jedoch keine.

Hamburg und Berlin

Hamburg und Berlin

Der Grund ist ein sprachlicher. Sie sagen zwar, dass Sie alle Hamburger UND Berliner Kunden filtern, Sie müssen jedoch einstellen Hamburg ODER Berlin. In keiner Zelle steht gleichzeitig Hamburg UND Berlin. Das logische UND bedeutet immer „sowohl – als auch“, also gleichzeitig. Beispielsweise: Hamburg und weiblich, oder PLZ >= 10000 und PLZ < 20000.

Warum funktioniert ODER nicht in Wenn-Funktionen?

Die Funktion

=WENN((G2>180)ODER(I2=“Platinum“);G2+20;G2+10)

wird mit einer Fehlermeldung quittiert. Alle Kunden, die entweder Platinum-Mitglieder sind oder jetzt schon mehr als 180 Euro bezahlen, sollen demnächst 20 Euro mehr Jahresbeitrag bezahlen – die übrigen erhalten eine Erhöhung von 10 Euro.

Die Antwort: UND und ODER sind in Excel keine Verknüpfungsoperatoren (wie beispielsweise in Programmiersprachen), sondern Funktionen. Und Funktionen müssen immer VOR den Argumenten geschrieben werden, also so:

=WENN(ODER(G2>180;I2=“Platinum“);G2+20;G2+10)

beziehungsweise:

=WENN(UND(G2>180;I2=“Platinum“);G2+20;G2+10)

So funktioniert ODER nicht.

So funktioniert ODER nicht.