Excel – Beágyazott IF-k és alternatívák

Köszönjük, hogy csatlakozott hozzánk! Pillanatok alatt üdvözlő üzenetet kap.

Á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
Köszönjük, hogy csatlakozott hozzánk! Pillanatok alatt üdvözlő üzenetet kap.

Leave a Reply

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük