Gibt einen von zwei Teilen je nach Auswertung eines Ausdrucks zurück.
Sie können die Funktion Wenn an allen Stellen verwenden, an denen Ausdrücke verwendet werden können. Mithilfe von Wenn können Sie ermitteln, ob ein anderer Ausdruck wahr oder falsch ist. Wenn der Ausdruck wahr (True) ist, gibt Wenn einen Wert zurück; ist der Ausdruck falsch (False), gibt Wenn einen anderen Wert zurück. Sie legen die Werte fest, die von Wenn zurückgegeben werden sollen.
Syntax
Wenn ( Ausdruck ; True-Teil ; False-Teil )
Die Syntax der Wenn-Funktion weist die folgenden Argumente auf:
Argument |
Beschreibung |
Ausdruck |
Erforderlich. Der Ausdruck, den Sie auswerten möchten. |
True-Teil |
Erforderlich. Der Wert oder Ausdruck, der zurückgegeben wird, wenn Ausdruck auf Wahr festgelegt ist. |
False-Teil |
Erforderlich. Der Wert oder Ausdruck, der zurückgegeben wird, wenn Ausdruck auf Falsch festgelegt ist. |
Hinweise
Auch wenn nur ein Wert zurückgegeben wird, wertet Wenn immer True-Teil und False-Teil aus. Deshalb sollten Sie auf unerwünschte Nebeneffekte achten. Selbst wenn Ausdruck auf Wahr festgelegt ist, tritt beispielsweise ein Fehler auf, wenn die Auswertung von False-Teil zu einem "Division durch Null"-Fehler führt.
Beispiele
Verwenden von IIf in einem Formular oder Bericht Angenommen, Sie verfügen über eine Customers-Tabelle, die ein Feld mit dem Namen CountryRegion enthält. In einem Formular möchten Sie angeben, ob Italienisch die erste Sprache des Kontakts ist. Sie können ein Steuerelement hinzufügen und IIf wie folgt in der Steuerelementquelle-Eigenschaft verwenden:
=Wenn([LandRegion]="Italien"; "Italienisch"; "Eine andere Sprache")
Wenn Sie das Formular in der Formularansicht öffnen, zeigt das Steuerelement "Italienisch" an, wenn der Wert für "LandRegion" gleich "Italien" lautet, und es zeigt "Eine andere Sprache" an, wenn "LandRegion" einen anderen Wert aufweist.
Verwenden von IIf in komplexen Ausdrücken Sie können einen beliebigen Ausdruck als beliebigen Teil einer IIf-Anweisung verwenden. Sie können auch IIf-Ausdrücke "verschachteln", sodass Sie eine Reihe abhängiger Ausdrücke auswerten können. Um mit dem vorherigen Beispiel fortzufahren, sollten Sie mehrere unterschiedliche CountryRegion-Werte testen und dann die entsprechende Sprache anzeigen, je nachdem, welcher Wert vorhanden ist:
=Wenn([LandRegion]="Italien"; "Italienisch"; Wenn([LandRegion]="Frankreich"; "Französisch"; Wenn([LandRegion]="Deutschland"; "Deutsch"; "Eine andere Sprache")))
Der Text "Eine andere Sprache" ist das Argument False-Teil der innersten Wenn-Funktion. Da es sich bei jeder geschachtelten Wenn-Funktion um das Argument False-Teil der Wenn-Funktion handelt, in der es enthalten ist, wird der Text "Eine andere Sprache" nur zurückgegeben, wenn alle Ausdruck-Argumente aller Wenn-Funktionen mit "Falsch" ausgewertet werden.
Ein weiteres Beispiel: Sie arbeiten an einer Bibliothek. Die Bibliotheksdatenbank verfügt über eine Tabelle mit dem Namen Auschecken, die ein Feld mit dem Namen Fälligkeitsdatum enthält, das das Datum enthält, an dem ein bestimmtes Buch zurücksteht. Sie können ein Formular erstellen, das die status eines ausgecheckten Elements in einem Steuerelement angibt, indem Sie die IIf-Funktion in der Eigenschaft Control Source dieses Steuerelements wie folgt verwenden:
=Wenn([Fälligkeitsdatum]<Datum();"ÜBERFÄLLIG";Wenn([Fälligkeitsdatum]=Datum();"Heute fällig";"Noch nicht fällig"))
Wenn Sie das Formular in der Formularansicht öffnen, zeigt das Steuerelement "ÜBERFÄLLIG" an, wenn der Wert von "Fälligkeitsdatum" kleiner als das aktuelle Datum ist, "Heute fällig", wenn es mit dem aktuellen Datum übereinstimmt, und andernfalls "Noch nicht fällig".
Hinweis: Um logische Operatoren wie "And" oder "Or" im Argument expr der Funktion IIf zu verwenden, müssen Sie den logischen Ausdruck in die Eval-Funktion einschließen. Sehen Sie sich die folgende Beispieltabelle an.
Verwenden von "Wenn" in einer Abfrage
Die Funktion Wenn wird häufig zum Erstellen von berechneten Feldern in Abfragen verwendet. Die Syntax ist identisch – abgesehen davon, dass Sie vor dem Ausdruck einen Feldalias und einen Doppelpunkt (:) statt eines Gleichheitszeichens (=) eingeben müssen. Um das Beispiel oben verwenden zu können, geben Sie in der Zeile Feld des Abfrageentwurfsbereichs Folgendes ein:
Sprache: Wenn([LandRegion]="Italien"; "Italienisch"; "Eine andere Sprache")
In diesem Fall lautet der Feldalias "Sprache:".
Weitere Informationen zum Erstellen von Abfragen und berechneten Feldern finden Sie im Artikel Erstellen einer einfachen Auswahlabfrage.
Verwenden von "Wenn" in VBA-Code
Hinweis: Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.
In diesem Beispiel wird die Funktion Wenn verwendet, um den TestMe-Parameter der CheckIt-Prozedur auszuwerten. Wenn der Betrag größer als 1.000 ist, wird das Wort "Groß" zurückgegeben. Andernfalls wird das Wort "Klein" zurückgegeben.
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Weitere Beispiele
Ausdruck |
Ergebnisse |
=Wenn([Flughafencode]="ORD";"Chicago";Wenn([Flughafencode]="ATL";"Atlanta";Wenn([Flughafencode]="SEA";"Seattle";"Anderer"))) |
Wenn [Flughafencode] gleich "ORD" ist, wird "Chicago" zurückgegeben. Wenn [Flughafencode] gleich "ATL" ist, wird "Atlanta" zurückgegeben. Wenn [Flughafencode] gleich "SEA" ist, wird "Seattle" zurückgegeben. Andernfalls wird "Anderer" zurückgegeben. |
=Wenn(Lieferdatum]<Datum();"Geliefert";Wenn([Lieferdatum]=Datum();"Wird heute geliefert";"Nicht geliefert")) |
Wenn [Lieferdatum] vor dem heutigen Datum liegt, wird "Geliefert" zurückgegeben. Wenn [Lieferdatum] gleich dem heutigen Datum ist, wird "Wird heute geliefert" zurückgegeben. Andernfalls wird "Nicht geliefert" zurückgegeben. |
=Wenn([Kaufdatum]<#1.1.2008#;"Alt";"Neu") |
Wenn [Kaufdatum] vor dem 1.1.2008 liegt, wird "Alt" zurückgegeben. Andernfalls wird "Neu" zurückgegeben. |
=Wenn(Auswerten([Volt] Zwischen 12 Und 15 Und [Amp] Zwischen 0,25 Und 0,3;"OK";"Nicht kalibriert") |
Wenn [Volt] zwischen 12 und 15 liegt und [Amp] zwischen 0,25 und 0,3, wird "OK" zurückgegeben. Andernfalls wird "Nicht kalibriert" zurückgegeben. |
=Wenn(Auswerten([LandRegion] In ("Kanada";"USA";"Mexiko"));"Nordamerika";"Andere") |
Wenn [LandRegion] gleich "Kanada", "USA" oder "Mexiko" ist, wird "Nordamerika" zurückgegeben. Andernfalls wird "Andere" zurückgegeben. |
=Wenn([Durchschnitt]>=90;"A";Wenn([Durchschnitt]>=80;"B";Wenn([Durchschnitt]>=70;"C";Wenn([Durchschnitt]>=60;"D";"F")))) |
Wenn [Durchschnitt] gleich 90 oder größer ist, wird "A" zurückgegeben. Wenn [Durchschnitt] gleich 80 oder größer ist, wird "B" zurückgegeben. Wenn [Durchschnitt] gleich 70 oder größer ist, wird "C" zurückgegeben. Wenn [Durchschnitt] gleich 60 oder größer ist, wird "D" zurückgegeben. Andernfalls wird "F" zurückgegeben. |
Hinweis: Wenn Sie mithilfe der Funktion Wenn ein berechnetes Feld in einer Abfrage erstellen, ersetzen Sie das Gleichheitszeichen (=) durch einen Feldalias und einen Doppelpunkt (:). Beispiel: Status: Wenn([Lieferdatum]<Datum();"Geliefert";Wenn([Lieferdatum]=Datum();"Wird heute geliefert";"Nicht geliefert"))