Turinys
Šioje pamokoje paaiškinama, kaip "Excel" programoje naudoti įterptinę funkciją IF kelioms sąlygoms tikrinti. Taip pat sužinosite keletą kitų funkcijų, kurios galėtų būti gera įterptinės formulės naudojimo "Excel" programoje alternatyva.
Kaip paprastai "Excel" darbalapiuose įgyvendinate sprendimų priėmimo logiką? Daugeliu atvejų naudojate IF formulę, kad patikrintumėte savo sąlygą ir grąžintumėte vieną reikšmę, jei sąlyga tenkinama, ir kitą reikšmę, jei sąlyga netenkinama. Norėdami įvertinti daugiau nei vieną sąlygą ir grąžinti skirtingas reikšmes, priklausomai nuo rezultatų, įterpiate keletą IF viena į kitą.
Nors ir labai populiarus, įterptinis IF teiginys nėra vienintelis būdas patikrinti kelias sąlygas "Excel" programoje. Šioje pamokoje rasite keletą alternatyvų, kurias tikrai verta išnagrinėti.
"Excel" įterptas IF teiginys
Štai klasikinė "Excel" įterptinė IF formulė bendrine forma:
IF( sąlyga1 , rezultatas1 , IF( sąlyga2 , rezultatas2 , IF( sąlyga3 , rezultatas3 , rezultatas4 )))Matote, kad kiekviena vėlesnė IF funkcija yra įterpta į value_if_false Kiekviena IF funkcija yra uždaryta savais skliaustais, tačiau visi uždaromieji skliaustai yra formulės pabaigoje.
Mūsų bendroji įterptinė IF formulė įvertina 3 sąlygas ir grąžina 4 skirtingus rezultatus (4 rezultatas grąžinamas, jei nė viena iš sąlygų nėra TRUE). Išvertus į žmonių kalbą, ši įterptinė IF formulė nurodo "Excel" atlikti šiuos veiksmus:
Testas sąlyga1 , jei TRUE - grąžinti rezultatas1 , jei FALSE -testas sąlyga2 , jei TRUE - grąžinti r esult2 , jei FALSE -
testas sąlyga3 , jei TRUE - grąžinti rezultatas3 , jei FALSE -
grąžinti rezultatas4
Pavyzdžiui, sužinokime keleto pardavėjų komisinius pagal jų atliktų pardavimų kiekį:
Komisija | Pardavimai |
3% | $1 - $50 |
5% | $51 - $100 |
7% | $101 - $150 |
10% | Daugiau nei 150 USD |
Matematikoje, keičiant sudėtinių dalių eiliškumą, suma nesikeičia. "Excel" programoje, keičiant IF funkcijų eiliškumą, rezultatas keičiasi. Kodėl? Todėl, kad įterpta IF formulė grąžina reikšmę, atitinkančią pirmoji TRUE sąlyga . Todėl įterptuose IF teiginiuose labai svarbu sąlygas išdėstyti tinkama kryptimi - nuo aukščiausios prie žemiausios arba nuo žemiausios prie aukščiausios, priklausomai nuo jūsų formulės logikos. Mūsų atveju pirmiausia tikriname "aukščiausią" sąlygą, tada "antrąją aukščiausią" ir t. t:
=IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))
Jei sąlygas išdėstytume atvirkštine tvarka, iš apačios į viršų, visi rezultatai būtų neteisingi, nes mūsų formulė sustotų po pirmojo loginio testo (B2>=1) bet kokiai vertei, didesnei nei 1. Tarkime, turime 100 USD pardavimų - ji didesnė nei 1, todėl formulė netikrintų kitų sąlygų ir kaip rezultatą grąžintų 3 %.
Jei norite sąlygas išdėstyti nuo mažiausios iki didžiausios, naudokite operatorių "mažiau nei" ir pirmiausia įvertinkite mažiausią sąlygą, tada antrą mažiausią ir t. t:
=IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))
Kaip matote, norint teisingai iki galo sukurti įterptinio IF teiginio logiką, reikia nemažai mąstyti. Ir nors "Microsoft Excel" leidžia į vieną formulę įterpti iki 64 IF funkcijų, to tikrai nenorėtumėte daryti savo darbalapiuose. Taigi, jei jūs (arba kas nors kitas) žvelgiate į savo "Excel" įterptinę IF formulę ir bandote išsiaiškinti, ką ji iš tikrųjų daro, laikaspersvarstysite savo strategiją ir tikriausiai pasirinksite kitą įrankį iš savo arsenalo.
Daugiau informacijos rasite "Excel" įterptiniame IF sakinyje.
Įterptinis IF su OR/AND sąlygomis
Jei reikia įvertinti kelis skirtingų sąlygų rinkinius, galite šias sąlygas išreikšti naudodami OR ir AND funkcijas, įterpti funkcijas į IF teiginius, o tada įterpti IF teiginius vieną į kitą.
"Excel" įterptieji IF su OR teiginiais
Naudodami funkciją OR galite patikrinti dvi ar daugiau skirtingų sąlygų kiekvienos funkcijos IF loginiame teste ir grąžinti TRUE, jei bet kuris (bent vienas) iš argumentų OR įvertinamas kaip TRUE. Norėdami pamatyti, kaip tai iš tikrųjų veikia, panagrinėkite toliau pateiktą pavyzdį.
Tarkime, turite du pardavimų stulpelius, tarkime, sausio mėnesio pardavimus B stulpelyje ir vasario mėnesio pardavimus C stulpelyje. Norite patikrinti skaičius abiejuose stulpeliuose ir apskaičiuoti komisinį atlyginimą pagal didesnį skaičių. Kitaip tariant, sukuriate formulę su tokia logika: jei sausio arba vasario mėnesio pardavimai yra didesni nei 150 USD, pardavėjas gauna 10 % komisinį atlyginimą, jei sausio arba vasario mėnesio pardavimai yra didesni arba lygūs101 JAV dolerį, pardavėjas gauna 7 proc. komisinių ir t. t.
Norėdami tai padaryti, parašykite keletą OF teiginių, pavyzdžiui, OR(B2>150, C2>150), ir įterpkite juos į pirmiau aptartų IF funkcijų loginius testus. Kaip rezultatą gausite šią formulę:
=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%, ""))))
O komisinius skirkite pagal didesnę pardavimo sumą:
Daugiau formulių pavyzdžių rasite "Excel" IF OR teiginyje.
"Excel" įterptieji IF su AND teiginiais
Jei jūsų loginiuose testuose yra kelios sąlygos ir visos šios sąlygos turi būti vertinamos kaip TRUE, išreikškite jas naudodami funkciją AND.
Pavyzdžiui, norėdami priskirti komisinius pagal mažesnį pardavimų skaičių, paimkite pirmiau pateiktą formulę ir vietoj teiginių OR įrašykite teiginius AND. Kitaip tariant, nurodysite "Excel" grąžinti 10 % tik tuo atveju, jei sausio ir vasario pardavimai yra didesni nei 150 USD, 7 %, jei sausio ir vasario pardavimai yra didesni arba lygūs 101 USD, ir t. t.
=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%, ""))))
Todėl mūsų įterptoji IF formulė apskaičiuoja komisinius pagal mažesnį skaičių B ir C stulpeliuose. Jei kuris nors iš stulpelių yra tuščias, komisinių nėra, nes netenkinama nė viena iš AND sąlygų:
Jei norite, kad vietoj tuščių langelių būtų grąžinta 0 %, paskutiniame argumente vietoj tuščios eilutės ("''") įrašykite 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%))))
Daugiau informacijos rasite čia: "Excel" IF su keliomis AND/OR sąlygomis.
VLOOKUP vietoj įterpto IF programoje "Excel
Kai susiduriate su "skalėmis", t. y. ištisiniais skaitinių verčių intervalais, kurie kartu apima visą intervalą, daugeliu atvejų vietoj įterptinių IF galite naudoti VLOOKUP funkciją.
Pirmiausia sukurkite nuorodų lentelę, kaip parodyta toliau pateiktoje ekrano kopijoje. Tada sukurkite Vlookup formulę su apytikslis atitikimas , t. y. su range_lookup argumentas TRUE.
Darant prielaidą, kad paieškos vertė yra B2, o atskaitos lentelė yra F2:G5, formulė yra tokia:
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
Atkreipkite dėmesį, kad mes nustatome table_array su absoliučiomis nuorodomis ($F$2:$G$5), kad formulė būtų teisingai nukopijuota į kitas ląsteles:
Nustatydami paskutinį Vlookup formulės argumentą TRUE, nurodote "Excel" ieškoti artimiausias atitikmuo - jei nerandama tikslaus atitikmens, grąžinama kita didžiausia reikšmė, kuri yra mažesnė už ieškomąją reikšmę. Todėl jūsų formulė atitiks ne tik tikslias ieškomosios lentelės reikšmes, bet ir bet kokias tarpines reikšmes.
Pavyzdžiui, B3 paieškos reikšmė yra $95. Šio skaičiaus paieškos lentelėje nėra, todėl šiuo atveju "Vlookup" su tiksliu atitikimu grąžintų klaidą #N/A. Tačiau "Vlookup" su apytiksliu atitikimu tęsia paiešką, kol randa artimiausią reikšmę, kuri yra mažesnė už paieškos reikšmę (mūsų pavyzdyje ji yra $50), ir grąžina tos pačios eilutės antrojo stulpelio reikšmę (kuri yra 5 %).
Tačiau ką daryti, jei paieškos reikšmė yra mažesnė už mažiausią skaičių paieškos lentelėje arba paieškos ląstelė yra tuščia? Tokiu atveju VLOOKUP formulė grąžins klaidą #N/A. Jei iš tikrųjų norite ne to, VLOOKUP įterpkite į IFERROR ir nurodykite reikšmę, kuri bus išvedama, kai nerandama paieškos reikšmė. Pvz:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Už diapazono ribų")
Svarbi pastaba! Kad Vlookup formulė su apytiksliu atitikimu veiktų teisingai, pirmasis paieškos lentelės stulpelis turi būti surūšiuotas pagal didėjančia tvarka nuo mažiausio iki didžiausio.
Daugiau informacijos rasite skyriuje Tikslus atitikimas VLOOKUP ir apytikslis atitikimas VLOOKUP.
IFS teiginys kaip įterptinės IF funkcijos alternatyva
"Excel 2016" ir vėlesnėse versijose "Microsoft" įdiegė specialią funkciją kelioms sąlygoms įvertinti - funkciją IFS.
IFS formulė gali apdoroti iki 127 logical_test / value_if_true poros, o laimi pirmasis loginis testas, kurio reikšmė yra TRUE:
IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2]...)Pagal pirmiau pateiktą sintaksę mūsų įterptinę IF formulę galima atkurti taip:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
Atkreipkite dėmesį, kad IFS funkcija grąžina klaidą #N/A, jei netenkinama nė viena iš nurodytų sąlygų. Norėdami to išvengti, galite pridėti dar vieną logical_test / value_if_true į formulės pabaigą, kuri grąžins 0 arba tuščią eilutę (""), arba bet kokią norimą reikšmę, jei nė vienas iš ankstesnių loginių testų nebus TRUE:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")
Todėl mūsų formulė grąžins tuščią eilutę (tuščią langelį), o ne #N/A klaidą, jei atitinkamas B stulpelio langelis yra tuščias arba jame yra tekstas ar neigiamas skaičius.
Pastaba. Kaip ir įterptinė IF, "Excel" funkcija IFS grąžina reikšmę, atitinkančią pirmąją sąlygą, kuri įvertinama kaip TRUE, todėl loginių testų eiliškumas IFS formulėje yra svarbus.
Daugiau informacijos rasite skyriuje "Excel" IFS funkcija vietoj įterptinio IF.
CHOOSE vietoj įterptinės IF formulės "Excel" programoje
Kitas būdas patikrinti kelias sąlygas vienoje "Excel" formulėje - naudoti funkciją CHOOSE, kuri skirta grąžinti reikšmę iš sąrašo pagal tos reikšmės padėtį.
Taikant šią formulę mūsų pavyzdiniam duomenų rinkiniui, ji atrodo taip:
=CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>=150), 3%, 5%, 7%, 10%)
Pirmasis argumentas ( index_num ), įvertinate visas sąlygas ir susumuojate rezultatus. Atsižvelgiant į tai, kad TRUE prilygsta 1, o FALSE - 0, tokiu būdu apskaičiuojama grąžintinos reikšmės padėtis.
Pavyzdžiui, B2 reikšmė yra 150 USD. Šiai reikšmei pirmosios 3 sąlygos yra TRUE, o paskutinioji (B2> 150) yra FALSE. Taigi, index_num lygi 3, vadinasi, grąžinama trečioji reikšmė, t. y. 7 %.
Patarimas. Jei nė vienas iš loginių testų nėra TRUE, index_num yra lygus 0, ir formulė grąžina #VALUE! klaidą. Lengva pataisyti, jei funkciją CHOOSE į IFERROR įtrauksite taip:
=IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")
Daugiau informacijos rasite "Excel" funkcijos CHOOSE pavyzdžiuose su formulėmis.
Funkcija SWITCH kaip glausta įterptinio IF forma "Excel" programoje
Tais atvejais, kai susiduriama su fiksuotu iš anksto nustatytų verčių rinkiniu, o ne skalėmis, funkcija SWITCH gali būti kompaktiška alternatyva sudėtingiems įterptiniams IF teiginiams:
SWITCH(išraiška, reikšmė1, rezultatas1, reikšmė2, rezultatas2, ..., [numatytasis])Funkcija SWITCH įvertina išraiška pagal sąrašą reikšmės ir grąžina rezultatas atitinkantį pirmą rastą atitikmenį.
Jei norite apskaičiuoti komisinį atlyginimą ne pagal pardavimų sumas, o pagal šiuos įvertinimus, galite naudoti šią kompaktišką "Excel" įterptosios IF formulės versiją:
=SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")
Arba galite sukurti nuorodų lentelę, kaip parodyta toliau pateiktame paveikslėlyje, ir vietoj užkoduotų verčių naudoti ląstelių nuorodas:
=SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")
Atkreipkite dėmesį, kad visas nuorodas, išskyrus pirmąją su ženklu $, užrakiname, kad jos nepasikeistų kopijuojant formulę į kitas ląsteles:
Pastaba. Funkcija SWITCH galima tik "Excel 2016" ir naujesnėse versijose.
Daugiau informacijos rasite skyriuje Funkcija SWITCH - kompaktiška įterpto IF sakinio forma.
Kelių IF funkcijų sujungimas programoje "Excel
Kaip minėta ankstesniame pavyzdyje, funkcija SWITCH įdiegta tik "Excel 2016". Norėdami atlikti panašias užduotis senesnėse "Excel" versijose, galite sujungti du ar daugiau IF teiginių naudodami operatorių Concatenate (&) arba funkciją CONCATENATE.
Pavyzdžiui:
=(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Arba
=CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Kaip pastebėjote, abiejose formulėse rezultatą dauginame iš 1. Taip daroma siekiant paversti eilutę, kurią grąžina formulė "Concatenate", skaičiumi. Jei jūsų laukiamas rezultatas yra tekstas, dauginimo operacijos atlikti nereikia.
Daugiau informacijos žr. "Excel" funkciją CONCATENATE.
Matote, kad "Microsoft Excel" siūlo keletą gerų įterptųjų IF formulių alternatyvų, ir tikimės, kad ši pamoka jums padės suprasti, kaip jas panaudoti savo darbalapiuose. Norėdami atidžiau susipažinti su šioje pamokoje aptartais pavyzdžiais, kviečiame atsisiųsti toliau pateiktą pavyzdinę darbaknygę. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!
Atsisiųsti praktikos sąsiuvinį
"Excel" įterptinis If teiginys - pavyzdžiai (.xlsx failas)