Palauttaa yhden kahdesta osasta riippuen lauseke laskusta.
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ä tosiosan että epätosiosan, vaikka funktio palauttaakin vain toisen niistä. Tämän vuoksi kannattaa pitää silmällä epätoivottuja vaikutuksia. Esimerkiksi jos epätosiosan laskeminen tuottaa nollallajakovirheen, virhe tapahtuu vaikka lauseke on 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-funktion argumentin epätosiosa. Koska jokainen sisäkkäinen IIf-funktio on sen sisältävän IIf-funktion epätosiosa-argumentti, teksti "Jokin muu kieli" palautetaan vain, jos kaikkien IIf-funktioiden lausekeargumenttien arvoksi tulee 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 ilmoittaa lainatun kohteen tilan ohjausobjektissa käyttämällä IIf-funktiota kyseisen ohjausobjektin Ohjausobjektin lähde -ominaisuudessa 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 And tai Or, IIf-funktion lausekeosassa, sinun täytyy sulkea ne Laske-funktioon. Saat lisätietoja esimerkkitaulukosta.
IIf-funktion käyttö kyselyssä
IIf-funktiota käytetään usein kyselyiden laskettujen kenttien luomiseen. Syntaksi on sama, mutta kyselyssä sinun täytyy lisätä lausekkeen eteen kentän tunnus ja kaksoispiste (:) yhtäsuuruusmerkin (=) asemesta. 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 |
Tulokset |
=IIf([Lentokenttäkoodi]="ORD","Chicago",IIf([Lentokenttäkoodi]="ATL","Atlanta",IIf([Lentokenttäkoodi]="SEA","Seattle","Muu"))) |
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". |
=IIf([Lähetyspäivä]<Päivämäärä(),"Lähetetty",IIf([Lähetyspäivä]=Päivämäärä(),"Lähetetään tänään","Ei lähetetty")) |
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". |
=IIf([Ostopäivä]<#1/1/2008#,"Vanha","Uusi") |
Jos [Ostopäivä] on ennen 1.1.2008, palauta "vanha". Muuten palauta "Uusi". |
=IIf(Laske([Volttia] 12:n ja15:n välillä JA [Ampeerit] 0,25:n ja 0,3:n välillä),"OK","Ei kalibroitu") |
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". |
=IIf(Laske([MaaTaiAlue] kohteessa ("Kanada","USA","Meksiko")),"Pohjois-Amerikka","Muu") |
Jos [MaaTaiAlue] on "Kanada", "USA" tai "Meksiko", palauta "Pohjois-Amerikka". Muuten palauta "Muu". |
=IIf([Keskiarvo]>=90,"A",IIf([Keskiarvo]>=80,"B",IIf([Keskiarvo]>=70,"C",IIf([Keskiarvo]>=60,"D","F")))) |
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 luot IIf-funktiolla lasketun kentän kyselyyn, korvaa yhtäsuuruusmerkki (=) kentän tunnuksella ja kaksoispisteellä (:). Esimerkki: Tila: IIf([Lähetyspäivä]<Päivämäärä(),"Lähetetty",IIf([Lähetyspäivä]=Päivämäärä(),"Lähetetään tänään","Ei lähetetty"))