Sisukord
Õpetuses selgitatakse, kuidas kasutada Exceli sisseehitatud IF-funktsiooni mitme tingimuse kontrollimiseks. Samuti õpid tundma mõningaid teisi funktsioone, mis võiksid olla head alternatiivid sisseehitatud valemi kasutamisele Excelis.
Kuidas te tavaliselt rakendate oma Exceli töölehtedel otsustusloogikat? Enamasti kasutate tingimuse testimiseks IF-vormelit, mis tagastab ühe väärtuse, kui tingimus on täidetud, ja teise väärtuse, kui tingimus ei ole täidetud. Et hinnata rohkem kui ühte tingimust ja tagastada sõltuvalt tulemustest erinevaid väärtusi, pesitsete te mitu IF-vormelit üksteise sisse.
Kuigi väga populaarne, ei ole sisseehitatud IF-lause ainus viis mitme tingimuse kontrollimiseks Excelis. Selles õpetuses leiate käputäie alternatiive, mida tasub kindlasti uurida.
Exceli sisseehitatud IF avalduse
Siin on klassikaline Exceli sisseehitatud IF-vormel üldisel kujul:
IF( tingimus1 , tulemus1 , IF( tingimus2 , tulemus2 , IF( tingimus3 , tulemus3 , tulemus4 )))Näete, et iga järgnev IF-funktsioon on põimitud sisse value_if_false iga IF-funktsioon on ümbritsetud omaenda sulgudes, kuid kõik sulgud on valemi lõpus.
Meie üldine sisseehitatud IF-vormel hindab 3 tingimust ja tagastab 4 erinevat tulemust (tulemus 4 tagastatakse, kui ükski tingimus ei ole tõene). Inimkeelde tõlgituna annab see sisseehitatud IF-avaldis Excelile käsu teha järgmist:
Test tingimus1 , kui TRUE - tagasi tulemus1 , kui FALSE -test tingimus2 , kui TRUE - tagastab r esult2 , kui FALSE -
test tingimus3 , kui TRUE - tagasi tulemus3 , kui FALSE -
return tulemus4
Näitena leiame mitme müüja komisjonitasu, mis põhineb nende tehtud müügitehingute arvul:
Komisjon | Müük |
3% | $1 - $50 |
5% | $51 - $100 |
7% | $101 - $150 |
10% | Üle 150 dollari |
Matemaatikas ei muuda liidetavate järjekorra muutmine summat. Excelis muudab IF-funktsioonide järjekorra muutmine tulemust. Miks? Sest sisseehitatud IF-valem tagastab väärtuse, mis vastab esimene TRUE tingimus . Seetõttu on väga oluline, et teie sisseehitatud IF-avaldustes paigutaksite tingimused õiges suunas - kõrgelt madalale või madalalt kõrgele, sõltuvalt teie valemi loogikast. Meie puhul kontrollime kõigepealt "kõrgeimat" tingimust, seejärel "suuruselt teist" jne:
=IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))".
Kui me paigutaksime tingimused vastupidises järjekorras, alt ülespoole, oleksid tulemused kõik valed, sest meie valem peatuks pärast esimest loogilist testi (B2>=1) mis tahes väärtuse puhul, mis on suurem kui 1. Oletame, et meil on 100 dollarit müügis - see on suurem kui 1, seega valem ei kontrolliks teisi tingimusi ja tagastaks tulemuseks 3%.
Kui soovite tingimusi pigem järjestada madalast kõrgemale, siis kasutage operaatorit "vähem kui" ja hinnake kõigepealt "madalaimat" tingimust, seejärel "suuruselt teist madalamat" ja nii edasi:
=IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))
Nagu näete, nõuab üsna palju mõtlemist, et ehitada pesitsetud IF-avalduse loogika õigesti lõpuni välja. Ja kuigi Microsoft Excel lubab kuni 64 IF-funktsiooni pesitsemist ühes valemis, ei ole see midagi, mida te oma töölehtedel tegelikult teha tahaksite. Seega, kui te (või keegi teine) vaatate oma Exceli pesitsetud IF-valemit, püüdes aru saada, mida see tegelikult teeb, on aeg, etvaadake oma strateegia uuesti läbi ja valige tõenäoliselt mõni muu vahend oma arsenalist.
Lisateavet leiate Exceli sisseehitatud IF avalduse kohta.
Sisestatud IF koos OR/AND tingimustega
Kui teil on vaja hinnata mitut erinevat tingimust, võite neid tingimusi väljendada nii OR- kui ka AND-funktsiooni abil, pesitseda funktsioonid IF-avalduste sisse ja seejärel pesitseda IF-avaldused üksteise sisse.
Sisestatud IF Excelis koos OR-avaldustega
Kasutades funktsiooni OR saate iga IF-funktsiooni loogilises testis kontrollida kahte või enamat erinevat tingimust ja tagastada TRUE, kui mõni (vähemalt üks) OR-argumentidest annab väärtuse TRUE. Et näha, kuidas see tegelikult töötab, vaadake järgmist näidet.
Oletame, et teil on kaks müügisammast, näiteks jaanuari müük veerus B ja veebruari müük veerus C. Te soovite kontrollida mõlema veeru numbreid ja arvutada komisjonitasu suurema arvu alusel. Teisisõnu, te koostate valemi, mille loogika on järgmine: kui kas jaanuari või veebruari müük on suurem kui 150 dollarit, saab müüja 10% komisjonitasu, kui jaanuari või veebruari müük on suurem või võrdne kui$101, müüja saab 7% komisjonitasu jne.
Selleks kirjutage mõned OF-avaldused nagu OR(B2>150, C2>150) ja pesitsege need eespool käsitletud IF-funktsioonide loogilistesse testidesse. Tulemusena saate sellise valemi:
=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 laske komisjonitasu määrata suurema müügisumma alusel:
Rohkem valemite näiteid leiate Exceli IF OR avaldusest.
Sisestatud IF Excelis koos AND-avaldustega
Kui teie loogilised testid sisaldavad mitut tingimust ja kõik need tingimused peaksid andma tulemuse TRUE, väljendage neid AND-funktsiooni abil.
Näiteks, et määrata komisjonitasud väiksema müügimahu alusel, võtke ülaltoodud valem ja asendage OR avaldustega AND. Teisiti öeldes ütlete Excelile, et ta tagastab 10% ainult siis, kui jaanuari ja veebruari müük on suurem kui 150 dollarit, 7%, kui jaanuari ja veebruari müük on suurem või võrdne 101 dollariga jne.
=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%, ""))))".
Tulemusena arvutab meie sisemine IF-valem komisjonitasu veergude B ja C väiksema arvu alusel. Kui kumbki veerg on tühi, ei ole komisjonitasu üldse olemas, sest ükski AND-tingimus ei ole täidetud:
Kui soovite tühjade lahtrite asemel tagastada 0%, asendage tühi string ('''") viimases argumendis 0%-ga:
=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%))))
Lisateavet leiate siit: Excel IF mitme AND/OR tingimusega.
VLOOKUP Exceli sisseehitatud IF-i asemel
Kui teil on tegemist "skaaladega", st numbriliste väärtuste pideva vahemikuga, mis koos katavad kogu vahemiku, saate enamasti kasutada funktsiooni VLOOKUP, selle asemel, et kasutada sisseehitatud IF-e.
Alustuseks tehke viitetabel, nagu on näidatud allpool oleval ekraanipildil. Ja seejärel koostage Vlookup valemiga ligikaudne kokkulangevus , st koos range_lookup argument on seatud TRUE.
Eeldades, et otsinguväärtus on B2 ja viitetabel on F2:G5, on valem järgmine:
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
Palun märkige, et me fikseerime table_array absoluutsete viidetega ($F$2:$G$5), et valemit saaks õigesti kopeerida teistesse lahtritesse:
Seades oma Vlookup-valemi viimase argumendi väärtuseks TRUE, ütlete Excelile, et ta otsib lähim vaste - kui täpset kokkulangevust ei leita, siis tagastab järgmise suurima väärtuse, mis on väiksem kui otsinguväärtus. Selle tulemusena ei vasta teie valem mitte ainult otsingutabelis olevatele täpsetele väärtustele, vaid ka kõikidele vahepealsetele väärtustele.
Näiteks on otsinguväärtus B3-s $95. Seda numbrit ei ole otsingutabeli sees olemas ja Vlookup täpse vastusega tagastaks sel juhul vea #N/A. Kuid Vlookup ligikaudse vastusega jätkab otsingut, kuni leiab lähima väärtuse, mis on otsinguväärtusest väiksem (mis meie näites on $50), ja tagastab väärtuse sama rea teisest veerust (mis on 5%).
Aga mis siis, kui otsinguväärtus on väiksem kui väikseim number otsingutabelis või kui otsingurakk on tühi? Sellisel juhul annab Vlookup valem tagasi vea #N/A. Kui see ei ole see, mida te tegelikult soovite, pesitsege VLOOKUP IFERRORi sees ja andke väärtus, mida väljastada, kui otsinguväärtust ei leita. Näiteks:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Väljaspool vahemikku")
Oluline märkus! Selleks, et Vlookup valem ligikaudse kokkulangevusega töötaks õigesti, peab esimene veerg otsingutabelis olema sorteeritud järgmiselt kasvavas järjekorras kõige väiksemast suurimani.
Lisateavet leiate jaotisest Täpne VLOOKUP vs. ligikaudne VLOOKUP.
IFS avaldis alternatiivina sisseehitatud IF-funktsioonile
Excel 2016 ja hilisemates versioonides võttis Microsoft kasutusele eri funktsiooni mitme tingimuse hindamiseks - IFS-funktsiooni.
IFS valemiga saab töödelda kuni 127 loogiline_test / value_if_true paarid ja esimene loogiline test, mis annab tulemuseks TRUE, "võidab":
IFS(loogiline_test1, value_if_true1, [loogiline_test2, value_if_true2]...)Vastavalt ülaltoodud süntaksile saab meie sisseehitatud IF-valemi rekonstrueerida järgmiselt:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
Pöörake tähelepanu, et IFS funktsioon tagastab vea #N/A, kui ükski määratud tingimustest ei ole täidetud. Selle vältimiseks võite lisada veel ühe funktsiooni loogiline_test / value_if_true oma valemi lõppu, mis tagastab 0 või tühja stringi ("") või mis tahes väärtuse, mida soovite, kui ükski eelmistest loogilistest testidest ei ole TRUE:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")
Selle tulemusena tagastab meie valem #N/A vea asemel tühja stringi (tühi lahter), kui vastav lahter veerus B on tühi või sisaldab teksti või negatiivset arvu.
Märkus. Nagu ka sisemine IF, tagastab Exceli funktsioon IFS väärtuse, mis vastab esimesele tingimusele, mis annab tulemuseks TRUE, mistõttu on loogiliste testide järjekord IFS-valemis oluline.
Lisateavet vt Excel IFS-funktsiooni asemel sisseehitatud IF.
CHOOSE asemel sisseehitatud IF-valem Excelis
Teine võimalus mitme tingimuse testimiseks ühe valemi sees Excelis on kasutada funktsiooni CHOOSE, mis on mõeldud selle väärtuse asukoha alusel loendist väärtuse tagastamiseks.
Rakendatuna meie näidisandmestikule on valem järgmine:
=CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)
Esimeses argumendis ( index_num ), hindate kõiki tingimusi ja liidate tulemused kokku. Arvestades, et TRUE võrdub 1 ja FALSE 0, arvutate sel viisil tagastatava väärtuse positsiooni.
Näiteks väärtus B2 on $150. Selle väärtuse puhul on esimesed 3 tingimust tõesed ja viimane (B2> 150) on VALE. Seega, index_num võrdub 3, mis tähendab, et tagastatakse kolmas väärtus, mis on 7%.
Vihje. Kui ükski loogiline test ei ole TRUE, index_num on võrdne 0 ja valem tagastab vea #VALUE!. Lihtne lahendus on CHOOSE funktsiooni IFERROR mähkimine järgmiselt:
=IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")
Lisateavet leiate Exceli funktsioonist CHOOSE koos valemite näidetega.
SWITCH-funktsioon kui Exceli sisseehitatud IF-i lühike vorm
Olukordades, kus tegemist on fikseeritud eelnevalt määratud väärtuste kogumiga, mitte skaaladega, võib funktsioon SWITCH olla kompaktne alternatiiv keerulistele sisseehitatud IF-avaldustele:
SWITCH(expression, value1, result1, value2, result2, ..., [default])Funktsioon SWITCH hindab väljendus vastu nimekirja väärtused ja tagastab tulemus mis vastab esimesele leitud kokkulangevusele.
Juhul, kui soovite arvutada komisjonitasu pigem järgmiste klasside kui müügisummade alusel, võite kasutada seda Exceli sisendatud IF-vormeli kompaktset versiooni:
=SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")
Või võite teha viitetabeli, nagu on näidatud allpool oleval ekraanipildil, ja kasutada lahtriviiteid kõvakooditud väärtuste asemel:
=SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")
Pange tähele, et me lukustame kõik viited, välja arvatud esimene viide $-märgiga, et vältida nende muutumist valemi kopeerimisel teistesse lahtritesse:
Märkus. Funktsioon SWITCH on saadaval ainult Excel 2016 ja uuemates versioonides.
Lisateavet vt SWITCH-funktsioon - sisseehitatud IF-avalduse kompaktne vorm.
Mitme IF-funktsiooni ühendamine Excelis
Nagu eelmises näites mainitud, võeti funktsioon SWITCH kasutusele alles Excel 2016. Sarnaste ülesannete lahendamiseks vanemates Exceli versioonides saate ühendada kaks või enam IF-avaldust, kasutades operaatorit Concatenate (&) või funktsiooni CONCATENATE.
Näiteks:
=(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Või
=CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Nagu olete ehk märganud, korrutame tulemuse mõlemas valemis 1. Seda tehakse selleks, et teisendada Concatenate-vormeli poolt tagastatud string numbriks. Kui teie oodatav väljund on tekst, siis pole korrutamisoperatsioon vajalik.
Lisateavet leiate dokumendist CONCATENATE funktsioon Excelis.
Näete, et Microsoft Excel pakub peotäis häid alternatiive sisseehitatud IF-vormele ja loodetavasti andis see õpetus teile mõned vihjed, kuidas neid oma töölehtedel kasutada. Et lähemalt tutvuda selles õpetuses käsitletud näidetega, olete teretulnud alljärgnevalt alla laadima meie näidistöömappi. Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!
Praktiline töövihik allalaadimiseks
Exceli sisseehitatud If avaldused - näited (.xlsx fail)