Palauttaa toisen kahdesta osasta lausekkeen arvioinnista riippuen.
Voit käyttää IIf kaikkia lausekkeita. Käytä IIf tätä, kun haluat selvittää, onko toinen lauseke tosi vai epätosi. Jos lauseke on tosi, IIf palauttaa yhden arvon. Jos arvo on epätosi, IIf se palauttaa toisen arvon. Määrität arvot, jotka IIf palauttavat.
Syntaksi
IIf(expr, truepart, falsepart)
Funktion IIf syntaksissa on seuraavat argumentit:
| Argumentti | Kuvaus |
|---|---|
expr |
Pakollinen. Lauseke, jonka arvo halutaan laskea. |
truepart |
Pakollinen. Palautettavan arvon tai lausekkeen, jos expr se on True. |
falsepart |
Pakollinen. Palautettavan arvon tai lausekkeen, jos expr se on False. |
Huomautuksia
IIf laskee aina sekä - että truepartfalsepart-arvot, vaikka se palauttaa vain yhden niistä. Tämän toiminnan vuoksi voit tarkkailla ei-toivottuja sivuvaikutuksia. Jos esimerkiksi arvioinnin falsepart tuloksena on jako nollalla -virhe, tapahtuu virhe, vaikka expr se olisikin True.
Esimerkkejä
Lomakkeen tai raportin käyttäminen IIf
Oletetaan, että sinulla on Customers taulukko, joka sisältää kentän nimeltä CountryRegion. Lomakkeessa haluat näyttää, onko italia yhteyshenkilön ensimmäinen kieli. Voit lisätä ohjausobjektin ja käyttää IIf sen Control Source ominaisuutta:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Kun avaat lomakkeen lomakenäkymässä, ohjausobjekti näkyy Italian aina, kun sen arvo CountryRegion on Italy. Se näkyy Some other language aina, kun CountryRegion sillä on muita arvoja.
Käytä IIf monimutkaisissa lausekkeissa
Voit käyttää mitä tahansa lauseketta missä tahansa lausekkeen IIf osassa. Voit myös määrittää sisäkkäiset IIf lausekkeet, joiden avulla voit arvioida seuraajalausekkeiden sarjan. Jos haluat jatkaa edeltävää esimerkkiä, haluat ehkä testata useita eri CountryRegion arvoja ja näyttää sitten sopivan kielen arvon perusteella:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Teksti Some other language on falsepart sisimmän IIf funktion argumentti. Koska kukin sisäkkäinen IIf funktio on falsepart sen sisältävän IIf funktion argumentti, teksti Some other language palautetaan vain, jos funktioiden IIf kaikkien expr argumenttien arvo on False.
Oletetaan esimerkiksi, että työskentelet kirjastossa. Kirjastotietokannassa on taulukko nimeltä Check Outs , joka sisältää kentän nimeltä Due Date, joka sisältää päivämäärän, jolloin tietyn kirjan on määrä palata. Voit luoda lomakkeen, joka näyttää uloskuitatun kohteen tilan ohjausobjektissa käyttämällä IIf kyseisen ohjausobjektin ominaisuuden Control Source funktiota:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Kun avaat lomakkeen lomakenäkymässä, ohjausobjekti näyttää OVERDUE , jos arvo Due Date on pienempi kuin nykyinen päivämäärä, Due today jos se on yhtä suuri kuin nykyinen päivämäärä ja Not Yet Due muussa tapauksessa.
Huomautus
Jos haluat käyttää loogisia operaattoreita, kuten And funktion expr argumenttia tai Or argumenttiaIIf, sinun on kirjoitettava looginen lauseke Eval-funktioon. Saat lisätietoja esimerkkitaulukosta.
Käytä IIf kyselyssä
Funktiota IIf käytetään usein laskettujen kenttien luomiseen kyselyissä. Syntaksi on sama, paitsi että kyselyssä sinun on lisättävä lausekkeeseen kenttätunnus ja kaksoispiste (:) yhtäläisyysmerkin (=) sijaan. Jos haluat käyttää edeltävää esimerkkiä, kirjoita kyselyn rakenneruudukon Kenttä-riville seuraavasti:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
Tässä tapauksessa Language: on kentän tunnus.
Lisätietoja kyselyjen ja laskettujen kenttien luomisesta on artikkelissa Yksinkertaisen valintakyselyn luominen.
Käytä IIf VBA-koodissa
Huomautus
Seuraavissa esimerkeissä näytetään, miten tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Jos haluat lisätietoja VBA:n käsittelemisestä, valitse Hae-kohdan vieressä olevasta avattavasta luettelosta Kehittäjäviittaus ja kirjoita sitten yksi tai useampi termi hakuruutuun.
Tässä esimerkissä funktion IIf avulla arvioidaan TestMe toimintosarjan parametri CheckIt ja palautetaan sana Large , jos määrä on suurempi kuin 1 000. Muussa tapauksessa se palauttaa sanan Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Lisää esimerkkejä
Ilmaisun:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Tulos: Jos
[AirportCode]on"ORD", palauta"Chicago". Muussa tapauksessa, jos[AirportCode]on"ATL", palauta"Atlanta". Muussa tapauksessa, jos[AirportCode]on"SEA", palauta"Seattle". Muussa tapauksessa palauta"Other".Ilmaisun:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Tulos: Jos
[ShipDate]on aiempi kuin kuluva päivä, palauta"Shipped". Muussa tapauksessa, jos[ShipDate]se on kuluva päivä, palauta"Shipping today". Muussa tapauksessa palauta"Unshipped".Ilmaisun:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Tulos: Jos
[PurchaseDate]on vanhempi kuin1/1/2008, palauta"Old". Muussa tapauksessa palauta"New".Ilmaisun:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Tulos: Jos
[Volts]arvo on 12–15 ja[Amps]on välillä 0,25–0,3, palauta"OK". Muussa tapauksessa palauta"Out of calibration".Ilmaisun:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Tulos: Jos
[CountryRegion]on"Canada","USA", tai"Mexico", palauta"North America". Muussa tapauksessa palauta"Other".Ilmaisun:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Tulos: Jos
[Average]arvo on 90 tai suurempi, palauta"A". Muussa tapauksessa, jos[Average]arvo on 80 tai suurempi, palauta"B". Muussa tapauksessa, jos[Average]arvo on 70 tai suurempi, palauta"C". Muussa tapauksessa, jos[Average]arvo on 60 tai suurempi, palauta"D". Muussa tapauksessa palauta"F".
Huomautus
Jos käytät funktiota IIf lasketun kentän luomiseen kyselyssä, korvaa yhtäläisyysmerkki (=) kentän aliaksella ja kaksoispisteellä (:). Esimerkiksi Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).