HA függvény – beágyazott képletek és a csapdák elkerülése
Hatókör
Microsoft 365-höz készült Excel Microsoft 365-höz készült Mac Excel Webes Excel Excel 2024 Mac Excel 2024 Excel 2021 Mac Excel 2021 Excel 2019 Excel 2016 Excel Web App Windows Phone 10 Excel

A HA függvénnyel logikailag összehasonlíthat egy értéket egy elvárt értékkel úgy, hogy ellenőrzi egy feltétellel való egyezését, és hogy milyen eredményt ad vissza Igaz vagy Hamis érték esetén.

  • =HA(Valami igaz, akkor valami történik, ellenkező esetben pedig valami más)

Tehát a HA utasításoknak két eredménye lehet. Az első eredmény akkor áll elő, ha az összehasonlítás igaz, a második pedig akkor, ha az összehasonlítás hamis.

A HA utasítások rendkívül hatékonyak, és rengeteg táblázatkezelési modell alapját alkotják, de közben számos táblázatkezelési hiba okozói is lehetnek. Ideális esetben a HA utasításoknak minimális feltételeknek kell megfelelniük (például Férfi/Nő, Igen/Nem/Talán, hogy csak néhányat említsünk), néha azonban olyan összetett helyzet kiértékelésére van szükség, amelyben több mint 3 HA függvényt kell egymásba ágyazni*.

* A "beágyazás" azt a gyakorlatot jelenti, amikor több függvényt egyesít egy képletben.

A HA függvénnyel, amely egy logikai függvény, aszerint adhat vissza értéket, hogy egy feltétel teljesül-e.

Szintaxis

HA(logikai_vizsgálat; érték_ha_igaz; [érték_ha_hamis])

Például:

  • =HA(A2>B2;"Költségvetést meghaladó";"OK")

  • =HA(A2=B2,B4-A4,"")

Argumentum neve

Leírás

logikai_vizsgálat   

(kötelező)

A vizsgálni kívánt feltétel.

érték_ha_igaz   

(kötelező)

A visszaadandó érték, ha a logikai_vizsgálat eredménye IGAZ.

érték_ha_hamis   

(nem kötelező)

A visszaadandó érték, ha a logikai_vizsgálat eredménye HAMIS.

Megjegyzések

Bár az Excel akár 64 különböző HA függvény beágyazására is lehetőséget ad, ez egyáltalán nem ajánlott. Miért?

  • Több HA utasítás esetén sok mindent át kell gondolni, hogy megfelelő legyen a kialakításuk, és gondoskodni kell arról, hogy a logikájuk minden egyes feltételen keresztül, egészen végig helyesen végezze a számítást. Ha nem 100%-os pontossággal ágyazta be a képletet, akkor az az idő 75%-ában működhet, de az idő 25%-ában váratlan eredményeket ad vissza. Sajnos arra, hogy a 25%-ban helyes az eredmény, kicsi az esély.

  • Több HA utasítás esetén rendkívül bonyolulttá válhat a fenntartásuk, különösen ha később valamikor visszatér, és megpróbál rájönni, hogy Ön – vagy rosszabb esetben más – mit kívánt tenni.

Ha talál magának egy HA utasítást, hogy csak úgy tűnik, hogy folyamatosan növekszik, és nincs vége szem előtt, itt az ideje, hogy tegye le az egeret, és újragondolja a stratégia.

Nézzük meg, hogyan hozhat létre megfelelően egy összetett beágyazott IF utasítást több IF használatával, és mikor kell felismerni, hogy ideje egy másik eszközt használni az Excel-arzenálban.

Példák

Az alábbi példa egy viszonylag szabványos beágyazott HA utasítást ábrázol, amely a tanulók teszteredményeit az azoknak megfelelő osztályzatokká alakítja.

Összetett beágyazott HA utasítás – Az E2 cellában lévő képlet a következő: =HA(B2>97,"5*",HA(B2>93,"5",HA(B2>89,"5-",HA(B2>87,"4/5",HA(B2>83,"4",HA(B2>79,"4-",HA(B2>77,"3/4",HA(B2>73,"3",HA(B2>69,"3-",HA(B2>57,"2/3",HA(B2>53,"2",HA(B2>49,"2-","1"))))))))))))
  • =HA(D2>89,"5",HA(D2>79,"4",HA(D2>69,"3",HA(D2>59,"2","1"))))

    Ez az összetett beágyazott HA utasítás egy egyszerű logikát követ:

  1. Ha a teszteredmény (a D2 cellában) nagyobb 89-nél, akkor a tanuló 5-ös osztályzatot kap.

  2. Ha a teszteredmény nagyobb 79-nél, akkor a tanuló 4-es osztályzatot kap.

  3. Ha a teszteredmény nagyobb 69-nél, akkor a tanuló 3-as osztályzatot kap.

  4. Ha a teszteredmény nagyobb 59-nél, akkor a tanuló 2-es osztályzatot kap.

  5. Ellenkező esetben a tanuló 1-es osztályzatot kap.

Ez a példa viszonylag biztonságos, mert nem valószínű, hogy a teszteredmények és a betűosztályok közötti korreláció megváltozik, így nem igényel sok karbantartást. De íme egy gondolat – mi a teendő, ha az osztályzatokat az A+, az A és az A (és így tovább) közé kell szegmentálta? Ez azt jelenti, hogy a négy feltételt tartalmazó HA utasítást át kell írnia úgy, hogy 12 feltételt tartalmazzon. A képlet így nézne ki most:

  • =HA(B2>97,"5*",HA(B2>93,"5",HA(B2>89,"5-",HA(B2>87,"4/5",HA(B2>83,"4",HA(B2>79,"4-", HA(B2>77,"3/4",HA(B2>73,"3",HA(B2>69,"3-",HA(B2>57,"2/3",HA(B2>53,"2",HA(B2>49,"2-","1"))))))))))))

Még mindig működőképes, és a várt módon működik, de hosszú időt vesz igénybe az írás, és hosszabb ideig tart a tesztelés, hogy biztosan azt tegye, amit akar. Egy másik szembetűnő probléma, hogy kézzel kellett megadnia a pontszámokat és az azzal egyenértékű betűosztályokat. Mekkora az esélye annak, hogy véletlenül elírása lesz? Képzelje el, hogy ezt 64-szer kell elvégeznie több összetett feltétellel! Persze, lehetséges, de tényleg olyan erőfeszítésnek és valószínű hibáknak akarja alávetni magát, amelyeket nagyon nehéz lesz felismerni?

Tipp: Az Excelben minden függvényhez egy nyitó és egy záró zárójel () szükséges. Az Excel a szerkesztéskor a képlet különböző részeinek színezésével igyekszik kideríteni, hogy mi hová vezet. Ha például a fenti képletet szeretné szerkeszteni, miközben a kurzort az egyes záró zárójelek fölé viszi ,", a megfelelő nyitó zárójel ugyanazt a színt fogja használni. Ez különösen akkor lehet hasznos összetett beágyazott képletek esetén, ha meg szeretné állapítani, hogy van-e elég egyező zárójele.

További példák

Az alábbi példa egy gyakori helyzetet ábrázol, amelyben az értékesítési jutalékot számítják ki az elért árbevétel különböző szintjei alapján.

A D9 cellában szereplő képlet a következő: HA(C9>15000,20%,HA(C9>12500,17,5%,HA(C9>10000,15%,HA(C9>7500,12,5%,HA(C9>5000,10%,0)))))
  • =HA(C9>15000,20%,HA(C9>12500,17,5%,HA(C9>10000,15%,HA(C9>7500,12,5%,HA(C9>5000,10%,0)))))

E képlet jelentése, hogy HA(C9 nagyobb, mint 15 000 akkor 20%, HA(C9 nagyobb, mint 12 500, akkor 17,5%, és így tovább...

Bár ez rendkívül hasonló a korábbi Évfolyamok példához, ez a képlet nagyszerű példa arra, hogy milyen nehéz lehet a nagy HA utasítások fenntartása – mit kellene tennie, ha szervezete úgy döntött, hogy új kompenzációs szinteket ad hozzá, és esetleg módosítja a meglévő dollár- vagy százalékértékeket? Sok munka lenne a kezén!

Tipp: A szerkesztőlécen sortörések beszúrásával olvashatóbbá teheti a hosszú képleteket. Csak nyomja le az ALT+ENTER billentyűkombinációt az előtt a szöveg előtt, amelyet új sorba szeretne tördelni.

Az alábbi jutalékos példában a logika hibás sorrendben van:

A D9 cellában lévő képlet nem a megfelelő sorrendben van: =HA(C9>5000,10%,HA(C9>7500,12,5%,HA(C9>10000,15%,HA(C9>12500,17,5%,HA(C9>15000,20%,0)))))

Látja, mi a baj? Hasonlítsa össze a különböző bevételek sorrendjét az előző példában szereplőkkel. Ez milyen irányba megy? Így van, alulról felfelé halad (5000-től 15 000 dollárig), nem fordítva. De miért olyan fontos ez? Ez azért nagy ügy, mert a képlet nem tudja átadni az első kiértékelési elemet 5000 dollár felett. Tegyük fel, hogy 12 500 usd bevétele van – a HA utasítás 10%-ot ad vissza, mert nagyobb, mint 5000 dollár, és ott leáll. Ez hihetetlenül problémás lehet, mert sok esetben az ilyen típusú hibák észrevétlenül jelennek meg, amíg negatív hatásuk nem lesz. Most, hogy már tudja, hogy az összetett beágyazott HA utasítások komoly csapdákat jelenthetnek, mit tehet? A legtöbb esetben ahelyett, hogy a HA függvénnyel készítene egy összetett képletet, használhatja az FKERES függvényt. Az FKERES függvény használata esetén először létre kell hoznia egy referenciatáblázatot:

A D2 cellában lévő képlet a következő: =FKERES(C2,C5:D17,2,IGAZ)
  • =FKERES(C2,C5:D17,2,IGAZ)

Ez a képlet a C2 cellában lévő értéket keresi a C5:C17 tartományban. Ha megtalálta az értéket, akkor eredményül a D oszlop ugyanazon sorából adja vissza a megfelelő értéket.

A C9 cellában szereplő képlet a következő: =FKERES(B9,B2:C6,2,IGAZ)
  • =FKERES(B9,B2:C6,2,IGAZ)

Ez a képlet is a B9 cellában lévő értéket keresi a B2:B22 tartományban. Ha megtalálta az értéket, akkor eredményül a C oszlop ugyanazon sorából adja vissza a megfelelő értéket.

Megjegyzés: Mindkét FKERES függvény az IGAZ argumentumot használja a képlet végén, ami azt jelenti, hogy közelítő egyezésre szeretnénk keresni. Más szóval az eredmény pontosan meg fog felelni a keresőtáblázatban található értékeknek, valamint a közéjük eső értékeknek is. Ebben az esetben a keresőtáblázatokat növekvő sorrendbe kell rendezni.

Az FKERES függvényt itt sokkal részletesebben tárgyaljuk, de ez biztosan sokkal egyszerűbb, mint egy 12 szintű, összetett beágyazott HA utasítás! Vannak más kevésbé nyilvánvaló előnyei is:

  • Az FKERES referenciatáblázatai szabadon elérhetők, és egyszerűen megtekinthetők.

  • A táblázat értékeit könnyen frissítheti, és soha nem kell a képlethez nyúlnia, ha megváltoznak a feltételek.

  • Ha nem szeretné, hogy mások lássák vagy zavarják a referenciatáblát, egyszerűen helyezze egy másik munkalapra.

Tudta?

Létezik egy olyan HAELSŐIGAZ függvény, amely képes egyetlen képlettel helyettesíteni több, egymásba ágyazott HA utasítást. Tehát a kezdeti osztályzatos példánk helyett, amelyben 4 beágyazott HA függvény szerepelt:

  • =HA(D2>89,"5",HA(D2>79,"4",HA(D2>69,"3",HA(D2>59,"2","1"))))

Sokkal egyszerűbb megoldásként egyetlen HAELSŐIGAZ függvényt használhat:

  • =HAELSŐIGAZ(D2>89,"5",D2>79,"4",D2>69,"3",D2>59,"2",IGAZ,"1")

A IFS függvény azért nagyszerű, mert nem kell aggódnia az összes HA utasítással és zárójelkel.

Megjegyzés: Ez a funkció csak akkor érhető el, ha van Microsoft 365-előfizetése. Ha Ön Microsoft 365-előfizető, ellenőrizze, hogy az Office legújabb verzióját használja-e.A Microsoft 365 megvásárlása vagy kipróbálása

További segítségre van szüksége?

Kérdéseivel mindig felkeresheti az Excel technikai közösség egyik szakértőjét, vagy segítséget kérhet a közösségekben.

Kapcsolódó témakörök

IFS függvény (Microsoft 365, Excel 2016 és újabb verziók) A DARABHA függvény egyetlen feltétel alapján számlálja meg azértékeket A DARABHATÖBB függvény több feltétel alapján számlálja meg azértékeket A SZUMHA függvény egyetlen feltétel alapján összegzi az értékeket. SZUMHATÖBB függvény több feltétel alapján összegzi az értékeketAND függvényVAGY függvényFKERES függvényAz Excel képleteinek áttekintéseHibás képletek elkerüléseKéplethibák észleléseLogikai függvényekExcel-függvények (betűrendes)Excel-függvények (kategória szerint)

További segítségre van szüksége?

További lehetőségeket szeretne?

Fedezze fel az előfizetés előnyeit, böngésszen az oktatóanyagok között, ismerje meg, hogyan teheti biztonságossá eszközét, és így tovább.