Excelin sisäkkäiset IF-lausekkeet - esimerkkejä, parhaat käytännöt ja vaihtoehdot

  • Jaa Tämä
Michael Brown

Ohjeessa kerrotaan, miten Excelissä käytetään sisäkkäistä IF-funktiota useiden ehtojen tarkistamiseen. Opit myös muutamia muita funktioita, jotka voivat olla hyviä vaihtoehtoja sisäkkäisen kaavan käytölle Excelissä.

Miten yleensä toteutat päätöksentekologiikan Excel-työarkkuuslomakkeissasi? Useimmissa tapauksissa käytät IF-kaavaa testataksesi ehtosi ja palauttaaksesi yhden arvon, jos ehto täyttyy, ja toisen arvon, jos ehto ei täyty. Arvioidaksesi useampia ehtoja ja palauttaaksesi eri arvoja tuloksista riippuen, sijoitat useita IF-kaavoja toistensa sisään.

Vaikka sisäkkäinen IF-lause on hyvin suosittu, se ei ole ainoa tapa tarkistaa useita ehtoja Excelissä. Tässä opetusohjelmassa on kourallinen vaihtoehtoja, jotka ovat ehdottomasti tutkimisen arvoisia.

    Excelin sisäkkäinen IF-lause

    Tässä on klassinen Excelin sisäkkäinen IF-kaava yleisessä muodossa:

    IF( ehto1 , tulos1 , IF( ehto2 , tulos2 , IF( ehto3 , tulos3 , tulos4 )))

    Näet, että jokainen seuraava IF-funktio on upotettu osaksi funktiota value_if_false Jokainen IF-funktio on suljettu omiin sulkeisiinsa, mutta kaikki sulkeiset ovat kaavan lopussa.

    Yleinen sisäkkäinen IF-kaavamme arvioi kolme ehtoa ja palauttaa neljä eri tulosta (tulos 4 palautetaan, jos mikään ehdoista ei ole TRUE). Ihmiskielelle käännettynä tämä sisäkkäinen IF-lause käskee Exceliä tekemään seuraavaa:

    Testi ehto1 , jos TRUE - palaa tulos1 , jos FALSE -

    testi ehto2 , jos TRUE - palaa r esult2 , jos FALSE -

    testi ehto3 , jos TRUE - palaa tulos3 , jos FALSE -

    return tulos4

    Esimerkkinä mainittakoon useiden myyjien palkkiot, jotka perustuvat heidän tekemiensä myyntien määrään:

    Komissio Myynti
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Yli 150 dollaria

    Matematiikassa yhteenlaskujen järjestyksen muuttaminen ei muuta summaa. Excelissä IF-funktioiden järjestyksen muuttaminen muuttaa tulosta. Miksi? Koska sisäkkäiset IF-kaavat palauttavat arvon, joka vastaa kohtaa ensimmäinen TRUE-ehto Siksi on erittäin tärkeää, että sisäkkäisissä IF-lausekkeissasi järjestät ehdot oikeaan suuntaan - korkeasta matalaan tai matalasta korkeaan, riippuen kaavan logiikasta. Meidän tapauksessamme tarkistamme ensin "korkeimman" ehdon, sitten "toiseksi korkeimman" ja niin edelleen:

    =IF(B2>150, 10 %, IF(B2>=101, 7 %, IF(B2>=51, 5 %, IF(B2>=1, 3 %, ""))))".

    Jos sijoittaisimme ehdot päinvastaisessa järjestyksessä, alhaalta ylöspäin, tulokset olisivat kaikki vääriä, koska kaava pysähtyisi ensimmäisen loogisen testin (B2>=1) jälkeen, jos arvo olisi suurempi kuin 1. Sanotaan, että meillä on 100 dollaria myyntiä - se on suurempi kuin 1, joten kaava ei tarkistaisi muita ehtoja ja palauttaisi tulokseksi 3 %.

    Jos haluat mieluummin järjestää ehdot matalasta korkeaan, käytä "pienempi kuin" -operaattoria ja arvioi ensin "matalin" ehto, sitten "toiseksi matalin" ja niin edelleen:

    =IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))

    Kuten näet, vaatii melko paljon ajatustyötä rakentaa sisäkkäisen IF-lausekkeen logiikka oikein loppuun asti. Ja vaikka Microsoft Excel sallii jopa 64 IF-funktion sisäkkäisen yhdistämisen yhteen kaavaan, sitä ei todellakaan haluta tehdä työtaulukoissa. Joten jos sinä (tai joku muu) katselet Excelin sisäkkäistä IF-kaavaa yrittäen selvittää, mitä se oikeastaan tekee, on aikaharkitse strategiaasi uudelleen ja valitse todennäköisesti jokin toinen työkalu arsenaalistasi.

    Lisätietoja on kohdassa Excelin sisäkkäiset IF-lauseet.

    Sisäkkäiset IF- ja OR/AND-ehdot

    Jos sinun on arvioitava muutama joukko erilaisia ehtoja, voit ilmaista nämä ehdot käyttämällä OR- ja AND-funktioita, sijoittaa funktiot IF-lauseiden sisään ja sitten sijoittaa IF-lauseet toisiinsa.

    Sisäkkäiset IF Excelissä OR-lausekkeilla

    Käyttämällä OR-funktiota voit tarkistaa kaksi tai useampia eri ehtoja jokaisen IF-funktion loogisessa testissä ja palauttaa arvon TRUE, jos jokin (vähintään yksi) OR-argumenteista on TRUE. Katso seuraavaa esimerkkiä, jotta näet, miten se todella toimii.

    Oletetaan, että sinulla on kaksi myyntisaraketta, vaikkapa tammikuun myynti sarakkeessa B ja helmikuun myynti sarakkeessa C. Haluat tarkistaa molempien sarakkeiden luvut ja laskea provision suuremman luvun perusteella. Toisin sanoen laadit kaavan, jossa on seuraava logiikka: jos tammi- tai helmikuun myynti on suurempi kuin 150 dollaria, myyjä saa 10 prosentin provision, jos tammi- tai helmikuun myynti on suurempi tai yhtä suuri kuin tai yhtä suuri kuin 150 dollaria, myyjä saa 10 prosentin provision.101 dollaria, myyjä saa 7 prosentin provision ja niin edelleen.

    Voit tehdä sen kirjoittamalla muutaman OF-lauseen, kuten OR(B2>150, C2>150), ja liittämällä ne edellä käsiteltyjen IF-funktioiden loogisiin testeihin. Tuloksena saat tämän kaavan:

    =IF(OR(B2>150, C2>150), 10 %, IF(OR(B2>=101, C2>=101),7 %, IF(OR(B2>=51, C2>=51), 5 %, IF(OR(B2>=1, C2>=1), 3 %, ""))))"".

    Ja määritä provisio korkeamman myyntimäärän perusteella:

    Lisää kaavaesimerkkejä on Excelin IF OR -lausekkeessa.

    Sisäkkäiset IF Excelissä AND-lausekkeilla

    Jos loogisiin testeihin sisältyy useita ehtoja, joiden kaikkien on oltava TODELLINEN, ilmaise ne AND-funktiolla.

    Jos haluat esimerkiksi määrittää palkkiot pienemmän myyntimäärän perusteella, ota yllä oleva kaava ja korvaa OR-lausekkeet AND-lausekkeilla. Toisin sanoen käsket Excelin palauttaa 10 % vain, jos tammi- ja helmikuun myynti on yli 150 dollaria, 7 %, jos tammi- ja helmikuun myynti on vähintään 101 dollaria, ja niin edelleen.

    =IF(AND(B2>150, C2>150), 10 %, IF(AND(B2>=101, C2>=101), 7 %, IF(AND(B2>=51, C2>=51), 5 %, IF(AND(B2>=1, C2>=1), 3 %, ""))))"".

    Tuloksena sisäkkäinen IF-kaavamme laskee provision sarakkeiden B ja C pienemmän luvun perusteella. Jos jompikumpi sarake on tyhjä, provisiota ei tule lainkaan, koska mikään AND-ehdoista ei täyty:

    Jos haluat palauttaa 0 % tyhjien solujen sijasta, korvaa viimeisessä argumentissa oleva tyhjä merkkijono ('''") arvolla 0 %:

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))

    Lisätietoa löytyy täältä: Excel IF with multiple AND/OR conditions.

    VLOOKUP sisäkkäisen IF:n sijasta Excelissä

    Kun kyseessä ovat "asteikot" eli jatkuvat numeeristen arvojen alueet, jotka yhdessä kattavat koko alueen, voit useimmissa tapauksissa käyttää VLOOKUP-toimintoa sisäkkäisten IF-kohtien sijasta.

    Tee aluksi alla olevan kuvakaappauksen kaltainen viitetaulukko ja rakenna sitten Vlookup-kaava, jossa on seuraavat tiedot likimääräinen vastaavuus , toisin sanoen range_lookup argumentin arvoksi on asetettu TRUE.

    Jos oletetaan, että hakuarvo on B2:ssa ja vertailutaulukko on F2:G5, kaava on seuraava:

    =VLOOKUP(B2,$F$2:$G$5,2,TRUE)

    Huomaa, että korjaamme table_array absoluuttisilla viitteillä ($F$2:$G$5), jotta kaava voidaan kopioida oikein muihin soluihin:

    Asettamalla Vlookup-kaavan viimeisen argumentin arvoksi TRUE, käsket Excelin etsiä lähin vastine - jos täsmällistä vastaavuutta ei löydy, palauta seuraavaksi suurin arvo, joka on pienempi kuin hakuarvo. Tämän tuloksena kaava ei vastaa ainoastaan hakutaulukon täsmällisiä arvoja vaan myös kaikkia niiden väliin jääviä arvoja.

    Esimerkiksi B3:n hakuarvo on 95 dollaria. Tätä lukua ei ole hakutaulukossa, ja Vlookup with exact match palauttaisi tässä tapauksessa #N/A-virheen. Mutta Vlookup with approximate match jatkaa hakua, kunnes se löytää lähimmän arvon, joka on pienempi kuin hakuarvo (joka esimerkissämme on 50 dollaria), ja palauttaa arvon saman rivin toisesta sarakkeesta (joka on 5 prosenttia).

    Mutta entä jos hakuarvo on pienempi kuin pienin luku hakutaulukossa tai hakusolu on tyhjä? Tällöin Vlookup-kaava palauttaa #N/A-virheen. Jos et oikeastaan halua sitä, voit sijoittaa VLOOKUPin IFERRORin sisään ja antaa arvon, joka tulostetaan, kun hakuarvoa ei löydy. Esimerkiksi:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Alueen ulkopuolella")

    Tärkeä huomautus! Jotta Vlookup-kaava, jossa on likimääräinen vastaavuus, toimisi oikein, hakutaulukon ensimmäisen sarakkeen on oltava lajiteltu seuraavasti nouseva järjestys pienimmästä suurimpaan.

    Lisätietoja on kohdassa Tarkka vastaavuus VLOOKUP vs. likimääräinen vastaavuus VLOOKUP.

    IFS-lause vaihtoehtona sisäkkäiselle IF-funktiolle

    Excel 2016:ssa ja sitä uudemmissa versioissa Microsoft otti käyttöön erikoistoiminnon, jolla voidaan arvioida useita ehtoja - IFS-funktion.

    IFS-kaavalla voidaan käsitellä jopa 127 looginen_testi / value_if_true pareja, ja ensimmäinen looginen testi, jonka arvoksi tulee TRUE, "voittaa":

    IFS(looginen_testi1, arvo_jos_tosi1, [looginen_testi2, arvo_jos_tosi2]...)

    Edellä esitetyn syntaksin mukaisesti sisäkkäinen IF-kaavamme voidaan muodostaa seuraavasti:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)

    Huomioi, että IFS-funktio palauttaa #N/A-virheen, jos mikään määritetyistä ehdoista ei täyty. Tämän välttämiseksi voit lisätä vielä yhden lisäyksen looginen_testi / value_if_true kaavan loppuun, joka palauttaa 0 tai tyhjän merkkijonon ("") tai minkä tahansa haluamasi arvon, jos mikään edellisistä loogisista testeistä ei ole TRUE:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")

    Tämän seurauksena kaavamme palauttaa tyhjän merkkijonon (tyhjä solu) #N/A-virheen sijasta, jos vastaava solu sarakkeessa B on tyhjä tai sisältää tekstiä tai negatiivisen numeron.

    Huomaa: Sisäkkäisten IF-ehtojen tapaan Excelin IFS-funktio palauttaa arvon, joka vastaa ensimmäistä ehtoa, jonka arvoksi tulee TRUE, minkä vuoksi loogisten testien järjestyksellä IFS-kaavassa on merkitystä.

    Lisätietoja on kohdassa Excelin IFS-funktio sisäkkäisen IF:n sijasta.

    CHOOSE sisäkkäisen IF-kaavan sijasta Excelissä

    Toinen tapa testata useita ehtoja yhdessä Excelin kaavassa on käyttää CHOOSE-funktiota, joka on suunniteltu palauttamaan arvo luettelosta kyseisen arvon sijainnin perusteella.

    Esimerkkitietokantaamme sovellettuna kaava on seuraavanlainen:

    =CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)

    Ensimmäisessä argumentissa ( index_num ), arvioit kaikki ehdot ja lasket tulokset yhteen. Koska TRUE vastaa arvoa 1 ja FALSE arvoa 0, lasket näin palautettavan arvon aseman.

    Esimerkiksi B2:n arvo on $150. Tämän arvon osalta kolme ensimmäistä ehtoa ovat TRUE ja viimeinen (B2> 150) on FALSE. Joten, index_num on 3, mikä tarkoittaa, että palautetaan kolmas arvo, joka on 7 %.

    Vihje. Jos mikään loogisista testeistä ei ole TRUE, index_num on yhtä suuri kuin 0, ja kaava palauttaa #VALUE! -virheen. Helppo ratkaisu on kietoa CHOOSE IFERROR-funktioon seuraavasti:

    =IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")

    Lisätietoja on Excelin CHOOSE-toiminnossa ja kaavaesimerkeissä.

    SWITCH-toiminto Excelin sisäkkäisen IF:n tiivis muoto

    Tilanteissa, joissa on kyse kiinteästä joukosta ennalta määritettyjä arvoja, ei asteikoista, SWITCH-funktio voi olla kompakti vaihtoehto monimutkaisille sisäkkäisille IF-lausekkeille:

    SWITCH(lauseke, arvo1, tulos1, arvo2, tulos2, ..., [oletus])

    SWITCH-funktio arvioi ilmaisu luetteloa vastaan arvot ja palauttaa tulos joka vastaa ensimmäistä löydettyä vastaavuutta.

    Jos haluat laskea palkkion myyntimäärien sijasta seuraavien arvosanojen perusteella, voit käyttää tätä kompaktia versiota Excelin sisäkkäisestä IF-kaavasta:

    =SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")

    Voit myös tehdä alla olevan kuvakaappauksen kaltaisen viitetaulukon ja käyttää soluviittauksia kovakoodattujen arvojen sijasta:

    =SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")

    Huomaa, että lukitsemme kaikki viittaukset lukuun ottamatta ensimmäistä viittausta $-merkillä, jotta ne eivät muutu, kun kaava kopioidaan muihin soluihin:

    Huomautus: SWITCH-toiminto on käytettävissä vain Excel 2016:ssa ja uudemmissa versioissa.

    Lisätietoja on kohdassa SWITCH-funktio - sisäkkäisen IF-lauseen tiivis muoto.

    Useiden IF-funktioiden yhdistäminen Excelissä

    Kuten edellisessä esimerkissä mainittiin, SWITCH-toiminto otettiin käyttöön vasta Excel 2016:ssa. Voit käsitellä vastaavia tehtäviä vanhemmissa Excel-versioissa yhdistämällä kaksi tai useampia IF-lauseita käyttämällä Concatenate-operaattoria (&) tai CONCATENATE-toimintoa.

    Esimerkiksi:

    =(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    Tai

    =CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    Kuten olet ehkä huomannut, kerromme tuloksen 1:llä molemmissa kaavoissa. Se tehdään, jotta Concatenate-kaavan palauttama merkkijono voidaan muuntaa numeroksi. Jos odotettu tuloste on tekstiä, kertolaskuoperaatiota ei tarvita.

    Lisätietoja on kohdassa Excelin CONCATENATE-toiminto.

    Näet, että Microsoft Excel tarjoaa kourallisen hyviä vaihtoehtoja sisäkkäisille IF-kaavoille, ja toivottavasti tämä opetusohjelma on antanut sinulle vihjeitä siitä, miten voit hyödyntää niitä työarkkeissasi. Jos haluat tutustua tarkemmin tässä opetusohjelmassa käsiteltyihin esimerkkeihin, voit ladata alla olevan esimerkkityökirjamme. Kiitän sinua lukemisesta ja toivon, että tapaamme blogissamme ensi viikolla!

    Käytännön työkirja ladattavissa

    Excelin sisäkkäiset If-lausekkeet - esimerkkejä (.xlsx-tiedosto)

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.