Atgriež vienu no divām daļām atkarībā no izteiksme novērtējuma.
Varat izmantot funkcijas IIf jebkur, kur var izmantot izteiksmes. Varat izmantot IIf , lai noteiktu, vai cita izteiksme ir TRUE vai FALSE. Ja izteiksme ir TRUE, funkcija IIf atgriež vienu vērtību; Ja tas ir aplams, funkcija IIf atgriež citu. Jūs norādāt vērtības IIf atgriež.
Sintakse
IIf ( izteiksme , patiesādaļa , aplamādaļa )
Funkcijas IIf sintaksei ir šādi argumenti.
Arguments |
Apraksts |
izteiksme |
Obligāts. Izteiksme, kuru vēlaties novērtēt. |
true_daļa |
Obligāts. Vērtība vai izteiksme tiek atgriezta, ja izteiksme ir True. |
false_daļa |
Obligāts. Vērtība vai izteiksme atgriezta, ja izteiksme ir nepatiesa. |
Piebildes
IIf vienmēr novērtē gan patiesādaļa , gan aplamādaļa, lai gan atgriež tikai vienu no tām. Šī iemesla dēļ ir jāuzmanās no nevēlamām blakusparādībām. Piemēram, ja, novērtējot aplamādaļa rezultātus dalīšanas ar nulles kļūdu, rodas kļūda pat tad, ja izteiksme ir True.
Piemēri
Funkcijas IIf lietošana formā vai atskaitē Iedomājieties, ka jums ir tabula Customers, kurā ir lauks CountryRegion. Veidlapā jūs vēlaties norādīt, vai itāļu valoda ir pirmā kontaktpersona. Varat pievienot vadīklu un izmantot funkcijas IIf rekvizīta Vadīklas avots , piemēram, šādi:
= IIf ([CountryRegion] = "Itālija", "itāliešu", "cita valoda")
Atverot formu formas skatā, vadīkla parāda "itāļu", ja CountryRegion vērtība ir Itālija, un "cita valoda", ja CountryRegion ir jebkura cita vērtība.
Funkcijas IIf lietošana saliktās izteiksmēs Jebkuru izteiksmi var izmantot kā daļu no IIf priekšraksta. Varat arī "ligzdot" IIf izteiksmes, ļaujot novērtēt atkarīgu izteiksmju sēriju. Lai turpinātu ar iepriekšējo piemēru, iespējams, vēlēsities testēt vairākas atšķirīgas vērtības CountryRegion un pēc tam attēlot attiecīgo valodu atkarībā no tā, kura vērtība pastāv:
= IIf ([CountryRegion] = "Itālija", "itāliešu", IIf ([CountryRegion] = "Francija", "franču", IIf ([CountryRegion] = "Vācija", "vācu", "cita valoda")))))
Teksts "cita valoda" ir visdziļākā funkcijasaplamādaļa arguments. Tā kā katra ligzdotā funkcija IIf ir aplamādaļa argumenta funkcija IIf , kas to satur, tad teksts "cita valoda" ir atgriezts tikai tad, ja visi funkcijas Sum argumenti tiek novērtēti kā aplami.
Citā piemērā pieņemsim, ka strādājat bibliotēkā. Bibliotēkas datu bāzē ir tabula ar nosaukumu Check outs, kas satur lauku, kura nosaukums ir. Varat izveidot formu, kas norāda paņemta vienuma statusu vadīklā, izmantojot funkciju IIf šīs vadīklas rekvizītā Vadīklas avots , piemēram, šādi:
= IIf ([izpildes datums] <datums (), "nokavēts", IIf ([izpildes datums] = Date (), "termiņš šodien", "vēl nav pienācis"))
Atverot formu formas skatā, vadīklā tiek parādīts teksts "nokavēts", ja izpildes datuma vērtība ir mazāka par pašreizējo datumu, "termiņš šodien", ja tas ir vienāds ar pašreizējo datumu, un "vēl nav jāveic" citādi.
Piezīme.: Lai izmantotu loģiskos operatorus, piemēram, "and" vai "or" funkcijas IIf argumentā izteiksme , funkcija eval ir jāiekļauj loģiskā izteiksmē. Skatiet tabulu piemērs, kas seko.
Funkcijas IIf lietošana vaicājumā
Funkcija IIf tiek bieži izmantota, lai izveidotu aprēķinātos laukus vaicājumos. Sintakse ir tāda pati, izņemot gadījumu, ja vaicājumā ir jāmaina izteiksme ar lauka aizstājvārdu un kolu (:), nevis vienādības zīmi (=). Lai izmantotu iepriekšējo piemēru, vaicājuma noformējuma režģa rindā lauks ierakstiet šādu:
Valoda: IIf ([CountryRegion] = "Itālija", "itāliešu", "cita valoda")
Šajā gadījumā "valoda:" ir lauka aizstājvārds.
Papildinformāciju par vaicājumu un aprēķināto lauku izveidi skatiet rakstā Vienkārša atlases vaicājuma izveide.
IIf lietošana VBA kodā
Piezīme.: Turpmākajos piemēros redzama šīs funkcijas izmantošana Visual Basic for Applications (VBA) modulī. Lai iegūtu papildinformāciju par darbu ar VBA, nolaižamajā sarakstā atlasiet Uzziņas materiāli izstrādātājiem blakus meklēšanas lodziņam un ievadiet šajā lodziņā vienu vai vairākus vārdus.
Šajā piemērā izmantota funkcija IIf , lai novērtētu CheckIt procedūras TestMe parametru, un atgriež vārdu "liels", ja summa ir lielāka par 1000; Pretējā gadījumā tiek atgriezts vārds "mazs".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Citi piemēri
Izteiksme |
Rezultāti |
= IIf ([Airportcode;] = "ORD", "Čikāga", IIf ([Airportcode;] = "ATL", "Atlanta", IIf ([Airportcode;] = "jūra", "Sietla", "cits"))) |
Ja [Airportcode;] ir "ORD", Return "Chicago". Pretējā gadījumā, ja [Airportcode;] ir "ATL", Return "Atlanta". Pretējā gadījumā, ja [Airportcode;] ir "jūra", atgriež "Sietla". Pretējā gadījumā atgriezīs "cits". |
= IIf ([ShipDate] <Date (), "nosūtīts", IIf ([ShipDate] = Date (), "Shipping Today", "nepiegādāts")) |
Ja [ShipDate] ir pirms šodienas datuma, atgrieziet "nosūtīts". Pretējā gadījumā, ja [ShipDate] ir vienāds ar šodienas datumu, atdodiet "Shipping Today". Pretējā gadījumā atgriezt "nenosūtīts". |
= IIf ([piegādes datums] <#1/1/2008 #, "vecs", "jauns") |
Ja [piegādes datums] ir pirms 1/1/2008, atgrieziet "Old". Pretējā gadījumā atdodiet "jauns". |
= IIf (eval ([volti] starp 12 un 15 un [ampēri] starp 0,25 un 0.3), "labi", "nav kalibrēšanas") |
Ja [volti] ir starp 12 un 15 un [ampērs] ir no 0,25 līdz 0,3, atdodiet "labi". Pretējā gadījumā atgriež "nav kalibrācijas". |
= IIf (eval ([CountryRegion] in ("Kanāda", "ASV", "Meksika")), "Ziemeļamerika", "cits") |
Ja [CountryRegion] ir "Kanāda", "ASV" vai "Meksika", Return "Ziemeļamerika". Pretējā gadījumā atgriezīs "cits". |
= IIf ([vidējais] >= 90, "A", IIf ([Average] >= 80, "B", IIf ([vidējais] >= 70, "C", IIf ([vidējais] >= 60, "D", "F")))))) |
Ja [Average] ir 90 vai jaunāka versija, atdodiet "A". Pretējā gadījumā, ja [Average] ir 80 vai jaunāka, atgriež "B". Pretējā gadījumā, ja [Average] ir 70 vai jaunāka versija, atgriež "C". Pretējā gadījumā, ja [Average] ir 60 vai jaunāka versija, atgriež "D". Pretējā gadījumā atgriež "F". |
Piezīme.: Ja izmantojat funkciju IIf , lai vaicājumā izveidotu aprēķinātu lauku, aizvietojiet vienādības zīmi (=) ar lauka aizstājvārdu un kolu (:). Piemēram, Statuss: IIf ([ShipDate] <Date (), "nosūtīts", IIF ([ShipDate] = Date (), "Shipping Today", "nenosūtīts"))