Palauttaa toisen kahdesta osasta lausekkeen arvioinnista riippuen.
Voit käyttää IIf-funktiota missä tahansa, missä voit käyttää lausekkeita. IIf-funktiota käytetään määrittämään, onko toinen lauseke tosi vai epätosi. Jos lauseke on tosi, IIf palauttaa yhden arvon; jos se on epätosi, IIf palauttaa toisen arvon. Voit määrittää arvot, jotka IIf palauttaa.
Syntaksi
IIf(lauseke;tosiosa;epätosiosa)
IIf-funktiolla on seuraavat argumentit:
| Argumentti | Kuvaus |
|---|---|
| lauseke | Pakollinen. Lauseke, jonka haluat arvioida. |
| tosiosa | Pakollinen. Palautettu arvo tai lauseke, jos lauseke on Tosi. |
| epätosiosa | Pakollinen. Arvo tai lauseke palautettu, jos lauseke on Epätosi. |
Huomautuksia
IIf laskee aina sekä tosi-osan että epätosi-osan, vaikka se palauttaa vain yhden niistä. Tämän vuoksi kannattaa pitää silmällä epätoivottuja vaikutuksia. Jos esimerkiksi epätosiosan arviointi johtaa nollavirheeseen, tapahtuu virhe, vaikka lauseke olisi Tosi.
Esimerkkejä
IIf-funktion käyttö lomakkeessa tai raportissa Oletetaan, että sinulla on asiakastaulukko, jossa on kenttä nimeltä MaaTaiAlue. Lomakkeessa haluat näyttää, onko italia yhteyshenkilön äidinkieli. Voit lisätä ohjausobjektin ja käyttää sen Ohjausobjektin lähde -ominaisuudessa IIf-funktiota seuraavasti:
=IIf([MaaTaiAlue]="Italia", "italia", "Jokin muu kieli")
Kun avaat lomakkeen lomakenäkymässä, ohjausobjekti näyttää sanan "italia" aina, kun MaaTaiAlueen arvo on Italia, ja sanat "Jokin muu kieli" aina, kun MaaTaiAlueen arvo on muu kuin Italia.
IIf-funktion käyttö monimutkaisissa lausekkeissa Voit käyttää mitä tahansa lauseketta minä tahansa IIf-lausekkeen osana. Voit myös asettaa IIf-lausekkeita sisäkkäin, jotta voit arvioida useita toisistaan riippuvaisia lausekkeita. Oletetaan jatkoa edelliseen esimerkkiin: haluat ehkä kokeilla useita MaaTaiAlue-arvoja ja näyttää sitten oikean kielen sen perusteella:
=IIf([MaaTaiAlue]="Italia", "italia", IIf([MaaTaiAlue]="Ranska", "ranska", IIf([MaaTaiAlue]="Saksa", "saksa", "Jokin muu kieli")))
Teksti "Jokin muu kieli" on sisimmän IIf-funktionepätosiosa-argumentti. Koska kukin sisäkkäinen IIf-funktio on sen sisältävän IIf-funktionepätosiosa-argumentti, teksti "Jokin muu kieli" palautetaan vain, jos kaikkien IIf-funktioiden lausekeargumenttien arvo on Epätosi.
Oletetaan toisena esimerkkinä, että työskentelet kirjastossa. Kirjastotietokannassa on taulukko Lainat, joka sisältää kentän Määräpäivä, jossa on kirjan palautuksen määräpäivä. Voit luoda lomakkeen, joka ilmaisee uloskuitatun kohteen tilan ohjausobjektissa, käyttämällä kyseisen ohjausobjektin Ohjausobjektin lähde -ominaisuuden IIf-funktiota seuraavasti:
=IIf([Määräpäivä]<Päivämäärä(),"MYÖHÄSSÄ",IIf([Määräpäivä]=Päivämäärä(),"Määräpäivä tänään","Ei vielä erääntynyt"))
Kun avaat lomakkeen lomakenäkymässä, ohjausobjekti näyttää tekstin "MYÖHÄSSÄ", jos Määräpäivän arvo on pienempi kuin kuluvan päivän päivämäärä, "Määräpäivä tänään", jos se on sama kuin kuluva päivä ja muuten "Ei vielä erääntynyt".
Huomautus
Jos haluat käyttää loogisia operaattoreita, kuten "Ja" tai "Tai", IIf-funktion lauseke-argumentissa, sinun on kirjoitettava looginen lauseke Eval-funktioon. Saat lisätietoja esimerkkitaulukosta.
IIf-funktion käyttö kyselyssä
IIf-funktiota käytetään usein kyselyiden laskettujen kenttien luomiseen. Syntaksi on sama lukuun ottamatta sitä, että kyselyssä lauseke on lisättävä kenttätunnuksella ja kaksoispisteellä (:) yhtäläisyysmerkin (=) sijasta. Edellisessä esimerkissä kirjoittaisit siis kyselyn rakenneruudukon Kenttä-riville seuraavasti:
Kieli: IIf([MaaTaiAlue]="Italia", "italia", "Jokin muu kieli")
Tässä tapauksessa "Kieli:" on kentän tunnusnimi.
Lisätietoja kyselyjen ja laskettujen kenttien luomisesta on artikkelissa Yksinkertaisen valintakyselyn luominen.
IIf-funktion käyttö VBA-koodissa
Huomautus
Seuraavissa esimerkeissä kerrotaan, kuinka tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Jos haluat lisätietoja VBA:n käytöstä, valitse Sovelluskehittäjän opasHaku-kentän viereisestä luettelosta ja anna yksi tai useampi hakuehto hakukenttään.
Tässä esimerkissä käytetään IIf-funktiota CheckIt-toimintosarjan TestMe-parametrin laskemiseen, joka palauttaa sanan "Suuri", jos määrä on suurempi kuin 1000, tai muussa tapauksessa sanan "Pieni".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Lisää esimerkkejä
Lauseke:
=IIf([Lentokenttäkoodi]="ORD","Chicago",IIf([Lentokenttäkoodi]="ATL","Atlanta",IIf([Lentokenttäkoodi]="SEA","Seattle","Muu")))
Tulos:
Jos [Lentokenttäkoodi] on "ORD", palauta "Chicago". Muuten, jos [Lentokenttäkoodi] on "ATL", palauta "Atlanta". Muuten, jos [Lentokenttäkoodi] on "SEA", palauta "Seattle". Muuten palauta "Muu".
Lauseke:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))
Tulos:
Jos [Lähetyspäivä] on ennen tämän päivän päivämäärää, palauta "Lähetetty". Muuten, jos [Lähetyspäivä] on sama kuin tämän päivän päivämäärä, palauta "Lähetetään tänään". Muuten palauta "Ei lähetetty".
Lauseke:
=IIf([PurchaseDate]<#1.1.2008#,"Vanha","Uusi")
Tulos:
Jos [Ostopäivä] on ennen 1.1.2008, palauta "vanha". Muuten palauta "Uusi".
Lauseke:
=IIf(Laske([Volttia] 12:n ja15:n välillä JA [Ampeerit] 0,25:n ja 0,3:n välillä),"OK","Ei kalibroitu")
Tulos:
Jos [Voltit] on 12:n ja 15:n välillä ja [Ampeerit] on 0,25:n ja 0,3:n välillä, palauta "OK". Muuten palauta "Ei kalibroitu".
Lauseke:
=IIf(Laske([MaaTaiAlue] kohteessa ("Kanada","USA","Meksiko")),"Pohjois-Amerikka","Muu")
Tulos:
Jos [MaaTaiAlue] on "Kanada", "USA" tai "Meksiko", palauta "Pohjois-Amerikka". Muuten palauta "Muu".
Lauseke:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))
Tulos:
Jos [Keskiarvo] on 90 tai suurempi, palauta "A". Muuten, jos [Keskiarvo] on 80 tai suurempi, palauta "B". Muuten, jos [Keskiarvo] on 70 tai suurempi, palauta "C". Muuten, jos [Keskiarvo] on 60 tai suurempi, palauta "D". Muuten palauta "F".
Huomautus
Jos käytät IIf-funktiota lasketun kentän luomiseen kyselyssä, korvaa yhtäläisyysmerkki (=) kentän aliaksella ja kaksoispisteellä (:). Esimerkiksi Tila: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))