Funkcja IIf

Zwraca jedną z dwóch części, zależnie od oceny wyrażenie.

Funkcji IIf można używać w dowolnym miejscu, w których można używać wyrażeń. Za pomocą funkcji IIf można określić, czy inne wyrażenie ma wartość prawdziwą, czy fałsz. Jeśli wyrażenie ma wartość prawdziwą, funkcja IIf zwraca jedną wartość. jeśli wartość jest fałszywa, funkcja IIf zwraca kolejny. Należy określić wartości zwracane przez wartość IIf.

Zobacz kilka przykładów

Składnia

IIf (wyr, prawda, część fałszywa)

W składni funkcji IIf występują następujące argumenty:

Argument

Opis

wyrażenie

Argument wymagany. Wyrażenie, które ma zostać oszacowane.

truepart

Argument wymagany. Wartość lub wyrażenie zwracane, jeśli wyrażenie ma wartość Prawda.

część fałszywa

Argument wymagany. Wartość lub wyrażenie zwracane, jeśli wyrażenie ma wartość Fałsz.


Spostrzeżenia

Funkcja IIf zawsze sprawdza wartość części prawda i wartość fałszu, mimo że zwraca tylko jeden z nich. Dlatego należy uważać na efekty boczne. Jeśli na przykład ocena wartości falsepart powoduje błąd dzielenia przez zero, błąd występuje nawet wtedy, gdy wyrażenie ma wartość Prawda.

Przykłady

Używanie funkcji IIf w formularzu lub raporcie    Załóżmy, że masz tabelę Klienci zawierającą pole o nazwie KrajRegion. W formularzu należy określić, czy pierwszym językiem kontaktu jest włoski. Możesz dodać kontrolkę i użyć funkcji IIf we właściwości Źródło kontrolki, na przykład:

=IIf([KrajRegion]="Włochy", "Włoski", "Inny język")

Po otwarciu formularza w widoku formularza zawsze w polu KrajRegion jest wyświetlana wartość "Włoski", a wartość "Inny język" oznacza każdą inną wartość w polu KrajRegion.

Używanie funkcji IIf w złożonych wyrażeniach    Jako części instrukcji IIf można użyć dowolnego wyrażenia. Można również "zagnieżdżać" wyrażenia IIf, co umożliwia ocenę serii wyrażeń zależnych. Aby kontynuować korzystanie z poprzedniego przykładu, można sprawdzić, czy istnieje kilka różnych wartości KrajRegion, a następnie wyświetlić odpowiedni język w zależności od tego, która wartość istnieje:

=IIf([KrajRegion]="Włochy", "Włoski", IIf([KrajRegion]="Francja", "Francuski", IIf([KrajRegion]="Niemcy", "Niemiecki", "Inny język")))

Tekst "Inny język" jest argumentem części fałszowej skrajnej funkcji IIf. Ponieważ każda zagnieżdżona funkcja IIf jest argumentem części fałsz funkcji IIf, która ją zawiera, zwracany jest tekst "Inny język" tylko wtedy, gdy wszystkie argumenty wyr. wszystkich funkcji IIf mają wartość Fałsz.

Załóżmy na przykład, że pracujesz w bibliotece. Baza danych biblioteki zawiera tabelę o nazwie Wyewidencjomi, która zawiera pole o nazwie Data zakończenia, zawierające datę, do która ma zostać zasyłana w określonej książce. Korzystając z funkcji IIf we właściwości Źródło kontrolki kontrolki, można utworzyć formularz wskazujący stan wyewidencjonowanego elementu w kontrolce, na przykład w taki sposób:

=IIf([Data zakończenia]<Date(),"ZAOPŁYSZ",IIf([Data zakończenia]=Date();"Termin płatności dzisiaj","Jeszcze nie termin"))

Po otwarciu formularza w widoku formularza kontrolka wyświetla komunikat "ZAO TERMIN", jeśli wartość daty zakończenia jest mniejsza niż bieżąca data, "Należny dzisiaj", jeśli jest równa bieżącej dacie, a w przeciwnym razie wartość "Jeszcze nie termin".

Uwaga: Aby w argumentie funkcji IIf użyć operatorów logicznych, takich jak "And" lub "Or", należy ująć wyrażenie logiczne w funkcję Eval. Zobacz przykładowe tabelę poniżej.

Używanie funkcji IIf w zapytaniu    

Funkcja IIf jest często używana do tworzenia pól obliczeniowych w zapytaniach. Składnia jest taka sama, z wyjątkiem tego, że w zapytaniu należy poprześcić wyrażenie aliasem pola i dwukropkiem(:)zamiast znakiem równości(=). Aby użyć poprzedniego przykładu, należy wpisać w wierszu Pole siatki projektu zapytania następujące informacje:

Język: IIf([KrajRegion]="Włochy", "Włoski", "Inny język")

W tym przypadku "Język:" jest aliasem pola.

Aby uzyskać więcej informacji na temat tworzenia zapytań i pól obliczeniowych, zobacz artykuł Tworzenie prostego zapytania wybierającego.

Używanie funkcji IIf w kodzie VBA    

Uwaga: Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.

W tym przykładzie użyto funkcji IIf do oceny parametru TestMe procedury CheckIt i zwraca wyraz "Duży", jeśli wartość jest większa niż 1000. w przeciwnym razie zwraca wyraz "Mały".

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

Więcej przykładów

Wyrażenie

Wyniki

=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))

Jeśli [KodNa lotniska] to "ORD", zwróć "Chicago". W przeciwnym razie, jeśli kod [AirportCode] to "ATL", zwróć "Atlanta". W przeciwnym razie, jeśli [KodNa lotniska] jest "SEA", zwróć "Seattle". W przeciwnym razie zwróć "Inne".

=IIf([Data Wysyłki]<Date(),"Wysłano",IIf([Data Wysyłki]=Date(),"Wysyłka dzisiaj","Niewysłane"))

Jeśli data [Data Wysyłki] jest wcześniejsza niż data dzisiejsza, zwróć zwrot "Wysłano". W przeciwnym razie, jeśli [Data Wysyłki] równa się dzisiejszej dacie, zwróć zwrot "Wysyłka dzisiaj". W przeciwnym razie zwróć "Niewysłane".

=IIf([PurchaseDate]<#1/1/2008#;"Stary","Nowy")

Jeśli [PurchaseDate] poprzedza datę 2008-01-01, zwróć "Stare". W przeciwnym razie zwróć "Nowy".

=IIf(Eval([Kowalska] Between 12 And 15 And [amps] Between 0,25 And 0,3);"OK","Out of kalibracja")

Jeśli [Zmęt] ma od 12 do 15, a [amps] ma od 0,25 do 0,3, zwróć "OK". W przeciwnym razie zwróć "Z kalibracjy".

=IIf(Eval([KrajRegion] In ("Kanada","USA","Meksyk")),"Ameryka Północna","Inne")

Jeśli [KrajRegion] jest "Kanada", "USA" lub "Meksyk", zwróć "Ameryka Północna". W przeciwnym razie zwróć "Inne".

=IIf([Średnia]>=90;"A",IIf([Średnia]>=80;"B";IIf([Średnia]>=70;"C",IIf([Średnia]>=60;"D";"F"))))

Jeśli wartość [Średnia] jest większa niż 90, zwróć wartość "A". W przeciwnym razie, jeśli wartość [Średnia] jest większa niż 80, zwróć wartość "B". W przeciwnym razie, jeśli wartość [Średnia] jest większa niż 70, zwróć wartość "C". W przeciwnym razie, jeśli wartość [Średnia] jest większa niż 60, zwróć wartość "D". W przeciwnym razie zwróć "F".

Uwaga: Jeśli używasz funkcji IIf do tworzenia pola obliczeniowego w zapytaniu, zamień znak równości(=)na alias pola i dwukropek (:). Na przykład stan: IIf([Data Wysyłki]<Date(),"Wysłane",IIf([Data Wysyłki]=Date(),"Wysyłka dzisiaj","Niewysłane"))

Potrzebna dalsza pomoc?

Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office