Excel geneste IF-stellings - voorbeelde, beste praktyke en alternatiewe

  • Deel Dit
Michael Brown

Die tutoriaal verduidelik hoe om die geneste IF-funksie in Excel te gebruik om verskeie toestande na te gaan. Jy sal ook 'n paar ander funksies leer wat goeie alternatiewe kan wees vir die gebruik van 'n geneste formule in Excel.

Hoe implementeer jy gewoonlik 'n besluitnemingslogika in jou Excel-werkblaaie? In die meeste gevalle sal jy 'n IF-formule gebruik om jou toestand te toets en een waarde terug te gee as die voorwaarde nagekom word, 'n ander waarde as die voorwaarde nie nagekom word nie. Om meer as een toestand te evalueer en verskillende waardes na gelang van die resultate terug te gee, nes jy verskeie IF's binne-in mekaar.

Alhoewel dit baie gewild is, is die geneste IF-stelling nie die enigste manier om verskeie toestande in Excel na te gaan nie. In hierdie tutoriaal sal jy 'n handvol alternatiewe vind wat beslis die moeite werd is om te ondersoek.

    Excel geneste IF-stelling

    Hier is die klassieke Excel geneste IF-formule in 'n generiese vorm :

    IF( voorwaarde1, resultaat1, IF( voorwaarde2, resultaat2, IF( voorwaarde3, resultaat3, resultaat4)))

    Jy kan sien dat elke daaropvolgende IF-funksie ingebed is in die value_if_false -argument van die vorige funksie. Elke IF-funksie word in sy eie stel hakies ingesluit, maar al die sluitingshakies is aan die einde van die formule.

    Ons generiese geneste IF-formule evalueer 3 toestande, en gee 4 verskillende resultate (resultaat 4 word teruggegee) indien nie een van diewerkboek vir aflaai

    Excel geneste If-stelling - voorbeelde (.xlsx-lêer)

    voorwaardes WAAR is). Vertaal in 'n menslike taal, hierdie geneste IF-stelling vertel Excel om die volgende te doen:Toets voorwaarde1, indien WAAR - gee resultaat1terug, indien ONWAAR -

    toets voorwaarde2 , indien WAAR - gee r uitslag2 terug, indien ONWAAR -

    toets voorwaarde3 , indien WAAR - gee resultaat3 terug, indien ONWAAR -

    opbrengs resultaat4

    As 'n voorbeeld, kom ons vind kommissies vir 'n aantal verkopers gebaseer op die hoeveelheid verkope wat hulle gemaak het:

    Kommissie Verkope
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Meer as $150

    In wiskunde, verander die volgorde van byvoegings nie die som nie. In Excel verander die volgorde van IF-funksies die resultaat. Hoekom? Omdat 'n geneste IF-formule 'n waarde gee wat ooreenstem met die eerste WAAR voorwaarde . Daarom, in jou geneste IF-stellings, is dit baie belangrik om die toestande in die regte rigting te rangskik - hoog na laag of laag na hoog, afhangende van jou formule se logika. In ons geval gaan ons eers die "hoogste" toestand na, dan die "tweede hoogste", ensovoorts:

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

    As ons die toestande in die omgekeerde volgorde, van onder af na bo, sal die resultate heeltemal verkeerd wees, want ons formule sal stop na die eerste logiese toets (B2>=1) vir enige waarde groter as 1. Kom ons sê, ons het $100in verkope - dit is groter as 1, so die formule sal nie ander toestande nagaan nie en 3% as die resultaat lewer.

    As jy eerder die toestande van laag na hoog wil rangskik, gebruik dan die "minder as "-operateur en evalueer eers die "laagste" toestand, dan die "tweede laagste", ensovoorts:

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

    Soos jy sien, verg dit nogal baie nadenke om die logika te bou van 'n geneste IF-stelling korrek tot aan die einde. En hoewel Microsoft Excel dit toelaat om tot 64 IF-funksies in een formule te nes, is dit nie iets wat jy regtig in jou werkblaaie wil doen nie. Dus, as jy (of iemand anders) na jou Excel geneste IF-formule staar en probeer uitvind wat dit eintlik doen, is dit tyd om jou strategie te heroorweeg en waarskynlik 'n ander hulpmiddel in jou arsenaal te kies.

    Vir meer inligting , sien asseblief Excel geneste IF-stelling.

    Neste IF met OF/EN-toestande

    In die geval dat jy 'n paar stelle verskillende toestande moet evalueer, kan jy daardie toestande uitdruk deur OF sowel as AND-funksie, nes die funksies binne IF-stellings, en nes dan die IF-stellings in mekaar.

    Genste IF in Excel met OF-stellings

    Deur die OF-funksie te gebruik kan jy twee of meer nagaan verskillende toestande in die logiese toets van elke IF-funksie en gee WAAR terug as enige (ten minste een) van die OF-argumente na WAAR evalueer. Om te sien hoe dit werklik werk, oorweeg asseblief dievolgende voorbeeld.

    Gestel, jy het twee kolomme van verkope, sê Januarie-verkope in kolom B en Februarie-verkope in kolom C. Jy wil die nommers in beide kolomme kontroleer en die kommissie bereken op grond van 'n hoër getal. Met ander woorde, jy bou 'n formule met die volgende logika: as óf Jan- of Feb-verkope groter as $150 is, kry die verkoper 10% kommissie, as Jan- of Feb-verkope groter as of gelyk aan $101 is, kry die verkoper 7% kommissie , ensovoorts.

    Om dit te laat doen, skryf 'n paar VAN stellings soos OR(B2>150, C2>150) en nes hulle in die logiese toetse van die IF-funksies wat hierbo bespreek is. As gevolg hiervan kry jy hierdie formule:

    =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%, ""))))

    En laat die kommissie toegeken word gebaseer op die hoër verkoopsbedrag:

    Vir meer formule-voorbeelde, sien asseblief Excel IF OF-stelling.

    Genes IF in Excel met EN-stellings

    As jou logiese toetse veelvuldige voorwaardes insluit, en al daardie voorwaardes moet evalueer na WAAR, druk dit uit deur die EN-funksie te gebruik.

    Om byvoorbeeld die kommissies toe te wys op grond van 'n laer aantal verkope, neem die formule hierbo en vervang OF met EN-stellings. Om dit anders te stel, sê jy vir Excel om slegs 10% terug te gee as Jan- en Feb-verkope meer as $150 is, 7% as Jan- en Feb-verkope groter as of gelyk aan $101 is, ensovoorts.

    =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%, ""))))

    As gevolg hiervan, bereken ons geneste IF-formule die kommissiegebaseer op die onderste getal in kolomme B en C. As enige van die kolomme leeg is, is daar glad geen kommissie nie, want nie een van die EN-voorwaardes word nagekom nie:

    As jy' as jy 0% in plaas van leë selle wil teruggee, vervang 'n leë string (''") in die laaste argument met 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%))))

    Meer inligting kan hier gevind word: Excel IF met veelvuldige EN/OF voorwaardes.

    VLOOKUP in plaas van geneste IF in Excel

    Wanneer jy met "skale" te doen het, dit wil sê kontinue reekse van numeriese waardes wat saam die hele reeks dek, in die meeste gevalle kan jy die VLOOKUP-funksie gebruik in plaas van geneste IF's.

    Om mee te begin, maak 'n verwysingstabel soos in die skermkiekie hieronder getoon. En bou dan 'n Vlookup-formule met benaderde passing , d.w.s. met die reeks_opsoek -argument op WAAR gestel.

    As die opsoekwaarde in B2 is en die verwysingstabel F2:G5 is, gaan die formule soos volg :

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

    Let asseblief kennis dat ons die tabel_skikking regmaak met absolute verwysings ($F$2:$G$5) vir die formule om korrek na ander selle te kopieer:

    Deur die laaste argument van jou Vlookup-formule op WAAR te stel, vertel jy Excel om soek vir die naaste passing - as 'n presiese passing nie gevind word nie, gee die volgende grootste waarde terug wat kleiner is as die opsoekwaarde. As gevolg hiervan sal jou formule nie net die presiese waardes in die opsoektabel pas nie, maar ook enigewaardes wat tussenin val.

    Byvoorbeeld, die opsoekwaarde in B3 is $95. Hierdie nommer bestaan ​​nie in die opsoektabel nie, en Vlookup met presiese passing sal in hierdie geval 'n #N/A-fout terugstuur. Maar Vlookup met benaderde passing gaan voort om te soek totdat dit die naaste waarde vind wat minder is as die opsoekwaarde (wat $50 in ons voorbeeld is) en 'n waarde van die tweede kolom in dieselfde ry terugstuur (wat 5% is).

    Maar wat as die opsoekwaarde minder is as die kleinste getal in die opsoektabel of die opsoeksel leeg is? In hierdie geval sal 'n Vlookup-formule die #N/A-fout terugstuur. As dit nie is wat jy eintlik wil hê nie, nes VLOOKUP binne IFERROR en verskaf die waarde na uitvoer wanneer die opsoekwaarde nie gevind word nie. Byvoorbeeld:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")

    Belangrike nota! Vir 'n Vlookup-formule met benaderde passing om korrek te werk, moet die eerste kolom in die opsoektabel in stygende volgorde gesorteer word, van kleinste na grootste.

    Vir meer inligting, sien asseblief Presiese passing VLOOKUP vs. benaderde passing VLOOKUP.

    IFS-stelling as alternatief vir geneste IF-funksie

    In Excel 2016 en later weergawes het Microsoft 'n spesiale funksie bekendgestel om veelvuldige toestande te evalueer - die IFS-funksie.

    'n IFS-formule kan tot 127 logiese_toets / waarde_as_waar -pare hanteer, en die eerste logiese toets wat na WAAR evalueer "wen":

    IFS(logiese_toets1,value_if_true1, [logical_test2, value_if_true2]...)

    In ooreenstemming met bogenoemde sintaksis kan ons geneste IF-formule op hierdie manier gerekonstrueer word:

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

    Let asseblief daarop dat die IFS-funksie gee die #N/A-fout terug as daar nie aan een van die gespesifiseerde voorwaardes voldoen word nie. Om dit te vermy, kan jy nog een logiese_toets / waarde_as_waar byvoeg aan die einde van jou formule wat 0 of leë string ("") sal terugstuur of watter waarde jy ook al wil hê as geen van die vorige logiese toetse is WAAR:

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

    As gevolg hiervan sal ons formule 'n leë string (leë sel) in plaas van die #N/A-fout terugstuur as 'n ooreenstemmende sel in kolom B is leeg of bevat teks of negatiewe getal.

    Let wel. Soos geneste IF, gee Excel se IFS-funksie 'n waarde terug wat ooreenstem met die eerste toestand wat na WAAR evalueer, en daarom is die volgorde van logiese toetse in 'n IFS-formule belangrik.

    Vir meer inligting, sien asseblief eerder Excel IFS-funksie van geneste IF.

    KIES in plaas van geneste IF-formule in Excel

    Nog 'n manier om veelvuldige toestande binne 'n enkele formule in Excel te toets, is om die KIES-funksie te gebruik, wat ontwerp is om 'n waarde terug te gee vanaf die lys gebaseer op 'n posisie van daardie waarde.

    Toegepas op ons voorbeelddatastel, neem die formule die volgende vorm aan:

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

    In die eerste argument ( index_num ), evalueer jy al die voorwaardes en tel die resultate by. Gegeedat WAAR gelykstaande is aan 1 en ONWAAR aan 0, op hierdie manier bereken jy die posisie van die waarde om terug te keer.

    Byvoorbeeld, die waarde in B2 is $150. Vir hierdie waarde is die eerste 3 voorwaardes WAAR en die laaste een (B2 > 150) is ONWAAR. Dus, indeks_getal is gelyk aan 3, wat beteken dat die 3de waarde teruggestuur word, wat 7% is.

    Wenk. As nie een van die logiese toetse WAAR is nie, is indeks_getal gelyk aan 0, en die formule gee die #WAARDE! fout. 'n Maklike oplossing is om CHOOSE in die IFERROR-funksie soos volg te vou:

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

    Vir meer inligting, sien asseblief Excel CHOOSE-funksie met formulevoorbeelde.

    SWITCH-funksie as 'n bondige vorm van geneste IF in Excel

    In situasies waar jy met 'n vaste stel voorafbepaalde waardes te doen het, nie skale nie, kan die SWITCH-funksie 'n kompakte alternatief vir komplekse wees geneste IF-stellings:

    SWITCH(uitdrukking, waarde1, resultaat1, waarde2, resultaat2, …, [verstek])

    Die SWITCH-funksie evalueer uitdrukking teen 'n lys van waardes en gee die resultaat wat ooreenstem met die eerste gevind passing terug.

    In geval jy die kommissie wil bereken op grond van die volgende grade, eerder as verkoopsbedrae, kan jy hierdie kompakte gebruik weergawe van geneste IF-formule in Excel:

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

    Of jy kan 'n verwysingstabel maak soos in die skermkiekie hieronder getoon en selverwysings gebruik in plaas van hardgekodeerde waardes:

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

    Asseblieflet op dat ons alle verwysings behalwe die eerste een met die $-teken sluit om te verhoed dat hulle verander wanneer die formule na ander selle gekopieer word:

    Let wel. Die SWITCH-funksie is slegs beskikbaar in Excel 2016 en hoër.

    Vir meer inligting, sien asseblief SWITCH-funksie - die kompakte vorm van geneste IF-stelling.

    Samevoeging van veelvuldige IF-funksies in Excel

    Soos genoem in die vorige voorbeeld, is die SWITCH-funksie slegs in Excel 2016 bekendgestel. Om soortgelyke take in ouer Excel-weergawes te hanteer, kan jy twee of meer IF-stellings kombineer deur die Concatenate-operateur (&) of die CONCATENATE-funksie te gebruik .

    Byvoorbeeld:

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

    Of

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

    Soos jy dalk het opgemerk, ons vermenigvuldig die resultaat met 1 in beide formules. Dit word gedoen om 'n string wat deur die Concatenate-formule teruggestuur word na 'n getal om te skakel. As jou verwagte uitset teks is, dan is die vermenigvuldigingsbewerking nie nodig nie.

    Vir meer inligting, sien asseblief CONCATENATE-funksie in Excel.

    Jy kan sien dat Microsoft Excel 'n handvol goeie alternatiewe bied na geneste IF-formules, en hopelik het hierdie tutoriaal jou 'n paar leidrade gegee oor hoe om dit in jou werkblaaie te benut. Om die voorbeelde wat in hierdie tutoriaal bespreek word van nader te bekyk, is u welkom om ons voorbeeldwerkboek hieronder af te laai. Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!

    Oefen

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.