Excel Nested IF-deklaroj - ekzemploj, plej bonaj praktikoj kaj alternativoj

  • Kundividu Ĉi Tion
Michael Brown

La lernilo klarigas kiel uzi la nestitan IF-funkcion en Excel por kontroli plurajn kondiĉojn. Vi ankaŭ lernos kelkajn aliajn funkciojn kiuj povus esti bonaj alternativoj al uzado de nestita formulo en Excel.

Kiel vi kutime efektivigas decidan logikon en viaj Excel-laborfolioj? Plejofte, vi uzus IF-formulon por testi vian kondiĉon kaj redoni unu valoron se la kondiĉo estas plenumita, alian valoron se la kondiĉo ne estas plenumita. Por taksi pli ol unu kondiĉon kaj redoni malsamajn valorojn depende de la rezultoj, vi nestas plurajn IF-ojn unu en la alia.

Kvankam tre populara, la nestita IF-deklaro ne estas la sola maniero kontroli plurajn kondiĉojn en Excel. En ĉi tiu lernilo, vi trovos manplenon da alternativoj, kiujn nepre indas esplori.

    Excel-nestita IF-deklaro

    Jen la klasika Excel-nestigita IF-formulo en ĝenerala formo. :

    IF( kondiĉo1, rezulto1, IF( kondiĉo2, rezulto2, IF( kondiĉo3, rezulto3, rezulto4)))

    Vi povas vidi ke ĉiu posta IF-funkcio estas enigita en la argumenton value_if_false de la antaŭa funkcio. Ĉiu IF-funkcio estas enfermita en sia propra aro de krampoj, sed ĉiuj fermaj krampoj estas ĉe la fino de la formulo.

    Nia senmarka nestita IF-formulo taksas 3 kondiĉojn, kaj liveras 4 malsamajn rezultojn (rezulto 4 estas resendita. se neniu el lalaborlibro por elŝuto

    Excel nestita If-deklaro - ekzemploj (.xlsx-dosiero)

    kondiĉoj estas VERA). Tradukita en homan lingvon, ĉi tiu nestita IF deklaro diras al Excel fari la jenon:Testu kondiĉo1, se VERA - redonu rezulton1, se FALSE -

    testu kondiĉo2 , se VERA - resendas r rezulton2 , se FALSA -

    testi kondiĉo3 , se VERA - redonu rezulton3 , se MALSO -

    reveni rezulto4

    Ekzemple, ni eltrovu komisionojn por kelkaj vendistoj surbaze de la kvanto de vendoj kiujn ili faris:

    Komisiono Vendoj
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Pli ol $150

    En matematiko, ŝanĝi la ordon de aldonaĵoj ne ŝanĝas la sumon. En Excel, ŝanĝi la ordon de IF-funkcioj ŝanĝas la rezulton. Kial? Ĉar nestita IF-formulo liveras valoron respondan al la unua VERA kondiĉo . Tial, en viaj nestitaj IF-deklaroj, estas tre grave aranĝi la kondiĉojn en la ĝusta direkto - alta al malalta aŭ malalta al alta, depende de la logiko de via formulo. En nia kazo, ni kontrolas la "plej altan" kondiĉon unue, poste la "duan plej altan", kaj tiel plu:

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

    Se ni metis la kondiĉoj en la inversa sinsekvo, de malsupre supren, la rezultoj estus tute malĝustaj ĉar nia formulo ĉesos post la unua logika testo (B2>=1) por ajna valoro pli granda ol 1. Ni diru, ni havas $100.en vendoj - ĝi estas pli granda ol 1, do la formulo ne kontrolus aliajn kondiĉojn kaj redonus 3% kiel rezulto.

    Se vi preferus aranĝi la kondiĉojn de malalta al alta, tiam uzu la "malpli ol " operatoro kaj taksu la "plej malaltan" kondiĉon unue, poste la "duan plej malaltan", kaj tiel plu:

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

    Kiel vi vidas, necesas multe da pripensado por konstrui la logikon. de nestita IF-deklaro ĝuste ĝis la fino. Kaj kvankam Microsoft Excel permesas nesti ĝis 64 IF-funkciojn en unu formulo, ĝi ne estas io, kion vi vere dezirus fari en viaj laborfolioj. Do, se vi (aŭ iu alia) rigardas vian Excel-nestitan IF-formulon provante eltrovi, kion ĝi efektive faras, estas tempo rekonsideri vian strategion kaj verŝajne elekti alian ilon en via arsenalo.

    Por pliaj informoj. , bonvolu vidi la deklaron de nestitaj IF en Excel.

    Nestitaj IF kun kondiĉoj AŬ/KAJ

    En la okazo, se vi bezonas taksi kelkajn arojn de malsamaj kondiĉoj, vi povas esprimi tiujn kondiĉojn uzante AŬ same kiel KAJ funkcio, nestu la funkciojn ene de IF-deklaroj, kaj poste nestu la IF-deklarojn unu en la alian.

    Nestite IF en Excel kun OR-deklaroj

    Per uzado de la OR-funkcio vi povas kontroli du aŭ pli. malsamaj kondiĉoj en la logika testo de ĉiu IF-funkcio kaj resendas VERA se iu (almenaŭ unu) el la OR-argumentoj taksas VERA. Por vidi kiel ĝi efektive funkcias, bonvolu konsideri lajena ekzemplo.

    Supozi, ke vi havas du kolumnojn de vendoj, diru januara vendo en kolumno B kaj februara vendo en kolumno C. Vi volas kontroli la nombrojn en ambaŭ kolumnoj kaj kalkuli la komisionon surbaze de pli alta nombro. Alivorte, vi konstruas formulon kun la sekva logiko: se aŭ Jan aŭ Feb vendoj estas pli grandaj ol $150, la vendisto ricevas 10% komisionon, se Jan aŭ Feb vendoj estas pli granda ol aŭ egala al $101, la vendisto ricevas 7% komisiono. , kaj tiel plu.

    Por fari ĝin, skribu kelkajn OF-propoziciojn kiel OR(B2>150, C2>150) kaj nestu ilin en la logikaj testoj de la IF-funkcioj supre diskutitaj. Kiel rezulto, vi ricevas ĉi tiun formulon:

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

    Kaj havas la komisionon atribuita surbaze de la pli alta vendokvanto:

    Por pli da formulekzemploj, bonvolu vidi la deklaron de Excel SE AŬ.

    Nestita SE en Excel kun KAJ deklaroj

    Se viaj logikaj testoj inkluzivas plurajn kondiĉojn, kaj ĉiuj tiuj kondiĉoj devus esti taksitaj al VERA, esprimu ilin. uzante la AND-funkcion.

    Ekzemple, por atribui la komisionojn bazitajn sur pli malalta nombro da vendoj, prenu la ĉi-supran formulon kaj anstataŭigu AŬ per KAJ deklaroj. Por diri ĝin alimaniere, vi diras al Excel, ke li redonu 10% nur se la vendoj de Jan kaj Feb estas pli granda ol $150, 7% se la vendoj de Jan kaj Feb estas pli granda aŭ egala al $101, kaj tiel plu.

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

    Kiel rezulto, nia nestita IF-formulo kalkulas la komisiononsurbaze de la pli malalta nombro en kolumnoj B kaj C. Se ĉiu kolumno estas malplena, tute ne ekzistas komisiono ĉar neniu el la KAJ kondiĉoj estas plenumita:

    Se vi' Mi ŝatus redoni 0% anstataŭ malplenajn ĉelojn, anstataŭigu malplenan ĉenon ("'") en la lasta argumento per 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%))))

    Pliaj informoj troveblas ĉi tie: Excel IF kun multoblaj AND/OR-kondiĉoj.

    VLOOKUP anstataŭ nestita IF en Excel

    Kiam vi traktas "skalojn", t.e. kontinuajn intervalojn de nombraj valoroj. kiuj kune kovras la tutan gamon, plejofte vi povas uzi la funkcion VLOOKUP anstataŭ nestitajn IF-ojn.

    Por komenci, faru referencan tabelon kiel montrita en la ekrankopio sube. Kaj poste, konstruu formulon Vlookup per proksimuma kongruo , t.e. kun la argumento range_lookup metita al VERA.

    Supozi la serĉvaloron estas en B2 kaj la referenca tabelo estas F2:G5, la formulo iras jene. :

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

    Bonvolu rimarki, ke ni riparas la table_array per absolutaj referencoj ($F$2:$G$5) por ke la formulo kopiu ĝuste al aliaj ĉeloj:

    Agordante la lastan argumenton de via Vlookup-formulo al VERA, vi diras al Excel ke serĉu la plej proksiman kongruon - se preciza kongruo ne estas trovita, redonu la sekvan plej grandan valoron kiu estas pli malgranda ol la serĉvaloro. Kiel rezulto, via formulo kongruos ne nur kun la precizaj valoroj en la serĉtabelo, sed ankaŭ kun ajnajvaloroj kiuj falas intere.

    Ekzemple, la serĉvaloro en B3 estas $95. Ĉi tiu nombro ne ekzistas en la serĉtabelo, kaj Vserĉo kun ĝusta kongruo redonus #N/A eraron ĉi-kaze. Sed Vserĉo kun proksimuma kongruo daŭre serĉas ĝis ĝi trovas la plej proksiman valoron kiu estas malpli ol la serĉvaloro (kiu estas $50 en nia ekzemplo) kaj resendas valoron de la dua kolumno en la sama vico (kiu estas 5%).

    Sed kio se la serĉvaloro estas malpli granda ol la plej malgranda nombro en la serĉtabelo aŭ la serĉĉelo estas malplena? En ĉi tiu kazo, Vlookup-formulo resendos la eraron #N/A. Se ĝi ne estas tio, kion vi fakte volas, nestu VLOOKUP ene de IFERROR kaj liveru la valoron por eligi kiam la serĉvaloro ne estas trovita. Ekzemple:

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

    Grava noto! Por ke Vserĉa formulo kun proksimuma kongruo funkciu ĝuste, la unua kolumno en la serĉtabelo devas esti ordigita en kreska ordo , de la plej malgranda al la plej granda.

    Por pliaj informoj, bonvolu vidi Ĝusta kongruo. VLOOKUP kontraŭ proksimuma kongruo VLOOKUP.

    IFS-deklaro kiel alternativo al nestita IF-funkcio

    En Excel 2016 kaj postaj versioj, Mikrosofto enkondukis specialan funkcion por taksi plurajn kondiĉojn - la IFS-funkcion.

    IFS-formulo povas manipuli ĝis 127 paroj logika_testo / valoro_se_vera , kaj la unua logika testo kiu taksas VERA "venkoj":

    IFS(logika_test1,valoro_se_vera1, [logika_testo2, valoro_se_vera2]...)

    Konforme al la ĉi-supra sintakso, nia nestita IF-formulo povas esti rekonstruita tiamaniere:

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

    Bonvolu atenti, ke la IFS-funkcio resendas la eraron #N/A se neniu el la specifitaj kondiĉoj estas plenumita. Por eviti tion, vi povas aldoni unu plian logikan_teston / value_if_true al la fino de via formulo, kiu redonos 0 aŭ malplenan ĉenon ("") aŭ kian ajn valoron vi volas se neniu el la antaŭaj logikaj provoj estas VERA:

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

    Kiel rezulto, nia formulo resendos malplenan ĉenon (malplena ĉelo) anstataŭ la eraro #N/A se responda ĉelo en kolumno B estas malplena aŭ enhavas tekston aŭ negativan numeron.

    Noto. Kiel nestita IF, la IFS-funkcio de Excel resendas valoron respondan al la unua kondiĉo, kiu taksas VERA, tial gravas la ordo de logikaj testoj en IFS-formulo.

    Por pliaj informoj, bonvolu vidi Excel-IFS-funkcion anstataŭe. de nestita IF.

    ELEKTI anstataŭ nesta IF-formulo en Excel

    Alia maniero por testi plurajn kondiĉojn ene de ununura formulo en Excel estas uzi la funkcion CHOOSE, kiu estas desegnita por redoni valoron de la listo surbaze de pozicio de tiu valoro.

    Aplikita al nia ekzempla datumaro, la formulo prenas la jenan formon:

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

    En la unua argumento ( index_num ), vi taksas ĉiujn kondiĉojn kaj aldonas la rezultojn. Donitake VERA egalas al 1 kaj FALSA al 0, tiamaniere vi kalkulas la pozicion de la valoro redonota.

    Ekzemple, la valoro en B2 estas $150. Por ĉi tiu valoro, la unuaj 3 kondiĉoj estas VERAJ kaj la lasta (B2 > 150) estas FALSA. Do, index_num egalas al 3, tio signifas, ke la 3-a valoro estas redonita, kiu estas 7%.

    Konsileto. Se neniu el la logikaj testoj estas VERA, index_num estas egala al 0, kaj la formulo liveras la #VALORO! eraro. Facila riparo estas envolvi CHOOSE en la IFERROR-funkcio tiel:

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

    Por pliaj informoj, bonvolu vidi Excel-ELEKTI-funkcion kun formulekzemploj.

    SWITCH-funkcio kiel konciza formo de nestita IF en Excel

    En situacioj kiam vi traktas fiksan aron de antaŭdifinitaj valoroj, ne skalojn, la SWITCH-funkcio povas esti kompakta alternativo al kompleksa. nestitaj IF-deklaroj:

    SWITCH(esprimo, valoro1, rezulto1, valoro2, rezulto2, …, [defaŭlte])

    La SWITCH-funkcio taksas esprimon kontraŭ listo de valoroj kaj resendas la rezulton responda al la unua trovita kongruo.

    En la okazo, vi ŝatus kalkuli la komisionon surbaze de la sekvaj gradoj, prefere ol vendokvantoj, vi povus uzi ĉi tiun kompakton. versio de nestita IF-formulo en Excel:

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

    Aŭ, vi povas fari referencan tabelon kiel montrite en la ekrankopio sube kaj uzi ĉelreferencojn anstataŭ malmolaj valoroj:

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

    Bonvolurimarku, ke ni ŝlosas ĉiujn referencojn krom la unua kun la $-signo por malhelpi ilin ŝanĝiĝi kiam oni kopias la formulon al aliaj ĉeloj:

    Notu. La SWITCH-funkcio disponeblas nur en Excel 2016 kaj pli.

    Por pliaj informoj, bonvolu vidi SWITCH-funkcion - la kompaktan formon de nestita IF-deklaro.

    Kunligi plurajn IF-funkciojn en Excel

    Kiel menciite en la antaŭa ekzemplo, la SWITCH-funkcio estis enkondukita nur en Excel 2016. Por pritrakti similajn taskojn en pli malnovaj Excel-versioj, vi povas kombini du aŭ pliajn IF-deklarojn uzante la Concatenate-funkciigiston (&) aŭ la CONCATENATE-funkcion. .

    Ekzemple:

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

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

    Kiel vi eble havas rimarkite, ni multobligas la rezulton per 1 en ambaŭ formuloj. Ĝi estas farita por konverti ĉenon resenditan de la Formulo Concatenate al nombro. Se via atendata eligo estas teksto, tiam la multiplika operacio ne estas bezonata.

    Por pliaj informoj, bonvolu vidi CONCATENATE-funkcion en Excel.

    Vi povas vidi, ke Microsoft Excel disponigas manplenon da bonaj alternativoj. al nestitaj IF-formuloj, kaj espereble ĉi tiu lernilo donis al vi kelkajn indicojn pri kiel utiligi ilin en viaj laborfolioj. Por pli detale rigardi la ekzemplojn diskutitajn en ĉi tiu lernilo, vi bonvenas elŝuti nian specimenan laborlibron sube. Mi dankas vin pro legado kaj esperas vidi vin en nia blogo venontsemajne!

    Praktiku

    Michael Brown estas diligenta teknologia entuziasmulo kun pasio por simpligi kompleksajn procezojn uzante programarajn ilojn. Kun pli ol jardeko da sperto en la teknologia industrio, li perfektigis siajn kapablojn en Microsoft Excel kaj Outlook, same kiel Google Sheets kaj Docs. La blogo de Mikaelo estas dediĉita al kunhavigi siajn sciojn kaj kompetentecon kun aliaj, provizante facilajn sekvajn konsiletojn kaj lernilojn por plibonigi produktivecon kaj efikecon. Ĉu vi estas sperta profesiulo aŭ komencanto, la blogo de Mikaelo ofertas valorajn komprenojn kaj praktikajn konsilojn por eltiri la plej multajn el ĉi tiuj esencaj programaj iloj.