Pateikia vieną iš dviejų dalių, atsižvelgiant į reiškinio įvertinimą.
Reiškinius galima naudoti IIf visur, kur tik galima naudoti reiškinius. Naudokite norėdami IIf nustatyti, ar kitas reiškinys yra teisingas ar klaidingas. Jei reiškinys yra teisingas, IIf pateikia vieną reikšmę. Jei reikšmė yra FALSE, IIf pateikia kitą reikšmę. Nurodykite grąžinamas reikšmes IIf .
Sintaksė
IIf(expr, truepart, falsepart)
Funkcijos IIf sintaksė turi tokius argumentus:
| Argumentas | Aprašas |
|---|---|
expr |
Būtinas. Išraiška, kurią norite įvertinti. |
truepart |
Būtinas. Grąžinama reikšmė arba reiškinys, jei expr yra True. |
falsepart |
Būtinas. Grąžinama reikšmė arba reiškinys, jei expr yra False. |
Pastabos
IIf Visada įvertina abu truepart ir , falsepartnet jei pateikia tik vieną iš jų. Dėl tokio elgesio stebėkite, ar nėra nepageidaujamo šalutinio poveikio. Pvz., jei vertinant falsepart gaunama dalybos iš nulio klaida, klaida įvyksta net jei expr yra True.
Pavyzdžiai
Naudojimas IIf formoje arba ataskaitoje
Tarkime, kad turite Customers lentelę, kurioje yra laukas, pavadintas CountryRegion. Formoje norite parodyti, ar italų kalba yra pirmoji kontakto kalba. Galite įtraukti valdiklį ir naudoti IIf jo Control Source ypatybėje:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Kai atidarote formą formos rodinyje, valdiklis rodomas Italian visais atvejais, kai reikšmė CountryRegion yra Italy. Ji rodoma Some other language , kai tik CountryRegion turi bet kokią kitą reikšmę.
Naudojimas IIf sudėtingose išraiškose
Bet kurioje teiginio IIf dalyje galite naudoti bet kokį reiškinį. Taip pat galite įdėti IIf reiškinius, kurie leidžia įvertinti priklausomų reiškinių seką. Tęsdami ankstesnį pavyzdį, galite išbandyti kelias skirtingas CountryRegion reikšmes ir tada rodyti atitinkamą kalbą pagal reikšmę:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Tekstas Some other language yra falsepart vidinės IIf funkcijos argumentas. Kadangi kiekviena įdėtoji IIf funkcija yra funkcijos argumentas falsepartIIf , tekstas Some other language grąžinamas tik tada, jei visi funkcijų argumentai exprIIf įvertinami kaip False.
Kitas pavyzdys: tarkime, kad dirbate bibliotekoje. Bibliotekos duomenų bazėje yra lentelė, pavadinta Check Outs su lauku, pavadintu Due Date, kuriame yra data, kada reikia grąžinti konkrečią knygą. Galite sukurti formą, kurioje rodoma paimto ir užrakinto elemento būsena valdiklyje naudodami IIf to valdiklio Control Source ypatybės funkciją:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Kai atidarote formą formos rodinyje, valdiklis rodo OVERDUE , ar reikšmė Due Date yra mažesnė už dabartinę datą, Due today ar ji lygi dabartinei datai ir Not Yet Due kitaip.
Pastaba
Jei norite naudoti loginius operatorius, pvz.And, funkcijos argumente IIf arba Orexpr , turite įtraukti loginį reiškinį į funkciją Eval. Žr. toliau pateiktą lentelės pavyzdį.
Naudojimas IIf užklausoje
Ši IIf funkcija dažnai naudojama apskaičiuotiesiems laukams užklausose kurti. Sintaksė yra tokia pati, išskyrus tai, kad užklausoje vietoj lygybės ženklo () išraiškai turi būti naudojamas lauko pseudonimas ir dvitaškis (:=). Norėdami naudoti ankstesnį pavyzdį, užklausos kūrimo tinklelio eilutėje Laukas įveskite:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
Šiuo atveju Language: yra lauko pseudonimas.
Daugiau informacijos apie užklausų ir apskaičiuotųjų laukų kūrimą rasite Paprastos išrinkimo užklausos kūrimas.
Naudojimas IIf VBA kode
Pastaba
Toliau pateikti pavyzdžiai, kaip naudoti šią funkciją "Visual Basic for Applications" (VBA) modulyje. Daugiau informacijos apie darbą su VBA rasite išplečiamajame sąraše pasirinkę Kūrėjų nuoroda (šalia Ieškos), tada ieškos lauke įveskite vieną ar daugiau sąlygų.
Šiame pavyzdyje naudojama IIf funkcija procedūros parametrui TestMeCheckIt įvertinti ir grąžinamas žodis Large , jei suma didesnė už 1000. Priešingu atveju jis grąžina žodį Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Daugiau pavyzdžių
Išraiška:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Rezultatas: Jei
[AirportCode]yra"ORD", grąžinti"Chicago". Priešingu atveju, jei[AirportCode]yra"ATL", grąžinti"Atlanta". Priešingu atveju, jei[AirportCode]yra"SEA", grąžinti"Seattle". Priešingu atveju, grįžti"Other".Išraiška:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Rezultatas: jei
[ShipDate]data ankstesnė nei šiandienos data, pateikti"Shipped". Kitu atveju, jei[ShipDate]lygi šiandienos datai, pateikti"Shipping today". Priešingu atveju, grįžti"Unshipped".Išraiška:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Rezultatas: jei
[PurchaseDate]yra ankstesnis nei1/1/2008, grąžinti"Old". Priešingu atveju, grįžti"New".Išraiška:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Rezultatas: jei
[Volts]yra nuo 12 iki 15, o[Amps]yra nuo 0,25 iki 0,3, pateikti"OK". Priešingu atveju, grįžti"Out of calibration".Išraiška:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Rezultatas: Jei
[CountryRegion]yra"Canada","USA"arba"Mexico", grąžinti"North America". Priešingu atveju, grįžti"Other".Išraiška:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Rezultatas: jei
[Average]yra 90 arba daugiau, pateikti"A". Kitu atveju, jei[Average]yra 80 ar daugiau, pateikti"B". Kitu atveju, jei[Average]yra 70 ar daugiau, grąžinti"C". Kitu atveju, jei[Average]yra 60 ar daugiau, grąžinti"D". Priešingu atveju, grįžti"F".
Pastaba
Jei IIf naudojate funkciją apskaičiuotajam laukui užklausoje kurti, lygybės ženklą (=) pakeiskite lauko pseudonimu ir dvitaškiu (:). Pvz., Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).