Áttekintés a beágyazott IF-állításokról és alternatívákról, amelyeket később könnyebb megalkotni és megérteni.
David Goodmanson
Legutóbbi cikkemben egy egyszerű Excel IF-állítást és azok hasznos unokatestvérek CountIf és SumIF. Megfogtam a beágyazott IF utasítást is, ahol egy cellában sok IF függvény található.
Ezúttal részletesebben megvizsgáljuk a beágyazott IF-t és különösen azokat az alternatívákat, amelyek később könnyebb elkészíteni és megérteni.
A továbbiakban megvizsgálunk néhány alternatív módot az IF utasítás felhasználására egyes VBA kódokban (Visual Basic for Applications), valamint a Select Case utasításra.
A B oszlopban szereplő besorolási szám szöveges leírássá válik a C oszlopban. Az Excel programban mindenféleképpen megtehető Egy ilyen egyszerű példában elegendő egy beágyazott IF, azonban vannak más lehetőségek is, amelyek a más emberek könnyebben olvashatók.
Senki sem áll szándékában hosszú beágyazott IF-ket készíteni. Ez idővel mindenkire felkúszik. Egy egyszerű beágyazott IF 2 vagy 3 opcióval egyre több IF-vel nőhet addig a pontig, ahol nem olvasható és hajlamos a kódolási hibákra. Itt van egy ‘egyszerű’ beágyazott IF 40 szinttel:
=IF(A2="A",TRUE,IF(A2="B",TRUE,IF(A2="C",TRUE,IF(A2="D",TRUE,
IF(A2="E",TRUE,IF(A2="F",TRUE,IF(A2="G",TRUE,IF(A2="H",TRUE,
IF(A2="I",TRUE,IF(A2="J",TRUE,IF(A2="K",TRUE,IF(A2="L",TRUE,
IF(A2="M",TRUE,IF(A2="N",TRUE,IF(A2="O",TRUE,IF(A2="P",TRUE,
IF(A2="Q",TRUE,IF(A2="R",TRUE,IF(A2="S",TRUE,IF(A2="T",TRUE,
IF(A2="U",TRUE,IF(A2="V",TRUE,IF(A2="W",TRUE,IF(A2="X",TRUE,
IF(A2="Y",TRUE,IF(A2="Z",TRUE,IF(A2="AA",TRUE,IF(A2="AB",TRUE,
IF(A2="AC",TRUE,IF(A2="AD",TRUE,IF(A2="AE",TRUE,IF(A2="AF",TRUE,
IF(A2="AG",TRUE,IF(A2="AH",TRUE,IF(A2="AI",TRUE,
IF(A2="AJ",TRUE,IF(A2="AK",TRUE,IF(A2="AL",TRUE,IF(A2="AM",TRUE,
IF(A2="AN",TRUE,FALSE))))))))))))))))))))))))))))))))))))))))
Az Excel 2007-ben 64 beágyazott IF-vel rendelkezhet egy képletben, bár sok sikert egy ilyen sor hibakereséséhez! A beágyazott IF-ket egy kicsit könnyebben lehet irányítani az Excel legújabb verzióiban, amelyek képletszínes kódolással rendelkeznek stb. E segítők ellenére az erősen beágyazott IF-ket a legjobb elkerülni.
Ha úgy gondolja, hogy a beágyazott opciókat később kibővítik, fontolja meg az egyik alternatíva a kezdetektől fogva.
Beágyazott IF
Először is, a Beágyazott IF függvényeknél a C3 cella képlete látható alább.
=IF(B3=5, "Boom", IF(B3=4, "Recovery", IF(B3=3, "Turning Point",
IF(B3=2, "Recession", IF(B3=1, "Depression")))))
A beágyazott IF balról jobbra működik, értékelve a logikai tesztet, pl. B3 = 5, ha ez a besorolás igaz, akkor az IF beszúrja a “Boom” szöveget. Ha a B3 nem egyenlő az 5-tel, akkor az IF megnézi a következő logikai tesztet (B3 = 4), és sorra értékeli az egyes lépéseket.
- Az IF addig folytatja az egyes tesztek kiértékelését, amíg a logikai teszt nem teljesül, majd kilép a függvényből.
- Az első IF-től balra eső egyenlőségjel csak egyszer szükséges az első IF-hez, ezt követően , a beágyazás minden szintjére egyszerűen beírjuk az IF szöveget. (Ez minden beágyazott munkalapfüggvényre igaz).
- A “(” nyitott zárójelek számának meg kell egyeznie a záró zárójelek számával “)”. A fenti képletben 5 nyitott zárójel található, amelyekhez 5 záró zárójel tartozik. A legutóbbi Excel-verziók jobb színezéssel és hibaellenőrzési funkciókkal rendelkeznek, hogy a zárójelek és az idézőjelek egyenesek maradjanak, de még így is beágyazott IF-k kellemetlenség a kidolgozásakor.
Keresőtábla
A beágyazott IF bonyolultságának megkerülése egyik módja a hivatkozási táblához kapcsolódó VLOOKUP használata ahol a munkalapon.
A táblázatunk így néz ki:
A C oszlop függvénye Az eredeti táblázat szövege most a következő:
=VLOOKUP(B3,$G$2:$H$6,2,FALSE)
Általában a keresési táblázatot ugyanannak a munkalapnak a másik fülére helyezi, de az adatok bárhonnan beszerezhetők.
VBA – az IF utasítás
Alternatív megoldás lehet egy egyedi VBA függvény létrehozása és a teljes IF logika VBA kódba való beillesztése.
Ennek az az előnye, hogy sokkal könnyebben olvasható és érthető.
Hátránya a kódbiztonság iránti igény, és aggodalomra ad okot, hogy a VBA kód legitim és nem vírus. Ha a felhasználók nem szoktak csatolt kóddal ellátott munkalapokat kapni, érdemes elkerülni a VBA opciókat.
Íme egy kódrészlet, ugyanaz a logika, mint a beágyazott IF-nek a cikk elején, de ahogy Ön sokkal könnyebben olvasható:
" Using a VBA if statement structure
" ==================================
If Rating = 5 Then
Prediction = "Boom"
ElseIf Rating = 4 Then
Prediction = "Recovery"
ElseIf Rating = 3 Then
Prediction = "Turning Point"
ElseIf Rating = 2 Then
Prediction = "Recession"
ElseIf Rating = 1 Then
Prediction = "Depression"
End If
VBA: Kiválasztási eset
Végül egy még könnyebben olvasható szerkezet a Select Case utasítás.
"Using a Select Case structure
"=============================
Select Case Rating
Case 5
Prediction = "Boom"
Case 4
Prediction = "Recovery"
Case 3
Prediction = "Turning Point"
Case 2
Prediction = "Recession"
Case 1
Prediction = "Depression"
End Select
A Select Case utasítás egy másik VBA struktúra, amely lehetőséget nyújt számos alternatíva értékelésére, minimális ismétlődő billentyűzettel . Ez is egyszerűbb és könnyebben olvasható, és akkor kell használni, ha több mint 3 alternatívája van az érdeklődő változónak.
VBA: és azon túl…
Végül, hogy ötletet adjak Önnek a Select Case nagyobb teljesítményének íme a Select Case kibővített verziója:
Select Case Rating
Case 4.5 To 10
Prediction = "Boom"
Case 3.5 To 4.49
Prediction = "Recovery"
Case 2.5 To 3.49
Prediction = "Turning Point"
Case 1.5 To 2.49
Prediction = "Recession"
Case 0.5 To 1.4
Prediction = "Depression"
Case 0 To 0.49
Prediction = "Money under the Mattress"
Case Else
Prediction = "No prediction - there"s no economy left!"
End Select
Ez a verzió értéktartományokat tesztel (pl. 3,5-nél nagyobb vagy egyenlő, de 4,5-nél kisebb vagy egyenlő besorolás), és lehetővé teszi, hogy valaki olyan törzsértéket kínáljon, mint például 2.5.
Ezenkívül a szerkezet alján található az „Else” vezérlő. Alapvetően az ev minden mást, amire az előző Elseifjeinkben nem terjedt ki. Ha semmi nem egyenlő a besorolással, akkor a struktúra Else része alternatív vezérlést biztosít.
Nos, ez az IF függvénysorozat. Tartsa be visszajelzéseit, kérdéseit és javaslatait. Találkozzunk legközelebb.
Lásd még
- Az Excel SUM sokkal több
- komplex Excel készítése cella könnyen használható
- Több beágyazott IF opció
- A KIVÁLASZTÁS lehetőség az Excelben
- Az Excel IF funkciója