Excel – IF-uri imbricate și alternative

Vă mulțumim că v-ați alăturat! Veți primi un mesaj de bun venit în câteva momente.

O privire asupra declarațiilor IF și a alternativelor imbricate care sunt mai ușor de realizat și de înțeles mai târziu.

de David Goodmanson

În ultimul meu articol am analizat o declarație simplă Excel IF plus veri utili CountIf și SumIF. De asemenea, am atins declarația IF imbricată, unde există multe funcții IF într-o singură celulă.

De data aceasta vom analiza IF imbricat mai detaliat și mai ales alternativele care sunt mai ușor de făcut și de înțeles mai târziu.

În continuare vom analiza câteva modalități alternative de a folosi instrucțiunea IF într-un cod VBA (Visual Basic pentru aplicații), precum și instrucțiunea Select Case.

Numărul de evaluare din coloana B este transformat într-o descriere de text în coloana C. În Excel există tot felul de modalități de a face Într-un exemplu simplu ca acesta, un IF imbricat este suficient, dar există și alte opțiuni pe care a Este mai ușor de citit de către alți oameni.

Nimeni nu își propune să creeze un grup lung de IF-uri imbricate. De obicei, se strecoară pe toată lumea în timp. Un IF simplu imbricat cu 2 sau 3 opțiuni poate crește cu tot mai multe IF-uri până la punctul în care este ilizibil și predispus la erori de codare. Iată un IF „simplu” imbricat cu 40 de niveluri:

=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))))))))))))))))))))))))))))))))))))))))

În Excel 2007 puteți avea 64 de IF-uri imbricate într-o singură formulă, deși noroc depanând o astfel de linie! IF-urile imbricate sunt puțin mai ușor de controlat în versiunile recente de Excel care au coduri de culoare pentru formulare etc. În ciuda acestor ajutoare, IF-urile puternic imbricate sunt cel mai bine evitate.

Dacă credeți că opțiunile imbricate ar putea fi extinse mai târziu, luați în considerare una dintre alternativele de la început.

Nested IF

În primul rând, pentru funcțiile IF imbricate, formula pentru celula C3 este prezentată mai jos.

=IF(B3=5, "Boom", IF(B3=4, "Recovery", IF(B3=3, "Turning Point",
IF(B3=2, "Recession", IF(B3=1, "Depression")))))

IF imbricat funcționează de la stânga la dreapta evaluând testul logic, de ex. B3 = 5, dacă evaluarea este adevărată, atunci IF introduce textul „Boom”. Dacă B3 nu este egal cu 5, atunci IF se uită la următorul test logic (B3 = 4) și evaluează fiecare pas la rândul său.

  • IF continuă să evalueze fiecare test până când testul logic este satisfăcut și apoi iese din funcție.
  • Semnul egal din stânga primului IF este necesar doar o singură dată pentru primul IF, după aceea , pentru fiecare nivel de imbricare, pur și simplu introducem textul IF. (Acest lucru este valabil pentru orice funcție de foaie de lucru imbricată).
  • Numărul de paranteze deschise „(” trebuie să fie egalat cu numărul de paranteze de închidere „)”. În exemplul de formulă de mai sus există 5 paranteze deschise, potrivite cu 5 paranteze de închidere la sfârșit. Versiunile recente ale Excel au caracteristici mai bune de colorare și verificare a erorilor pentru a menține parantezele și ghilimelele drepte, dar chiar și așa fișierele IF pot fi o problemă de rezolvat.

Tabel de căutare

O modalitate de a rezolva complexitatea IF-ului imbricat este să folosiți VLOOKUP legat de un alt tabel de referință în foaia de lucru.

Tabelul nostru ar arăta astfel:

Funcția din Coloana C din tabelul original citește acum:

=VLOOKUP(B3,$G$2:$H$6,2,FALSE)

De obicei, ați pune tabelul de căutare în altă filă a aceleiași foi de lucru, dar datele pot fi obținute de oriunde.

VBA – declarația IF

O alternativă este de a crea o funcție VBA personalizată și de a pune întreaga logică IF în codul VBA.

Aceasta are avantajul de a fiind mult mai ușor de citit și de înțeles.

Dezavantajul este necesitatea securității codului și îngrijorarea că codul VBA este legitim și nu un virus. Dacă utilizatorii dvs. nu sunt obișnuiți să obțină foi de lucru cu cod atașat, vă recomandăm să evitați opțiunile VBA.

Iată un fragment de cod, este aceeași logică ca IF-ul imbricat la începutul acestui articol, dar, ca și dvs. poate vedea, este mult mai ușor de citit:

" 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: Select Case

În cele din urmă, o instrucțiune mai ușor de citit este declarația Select Case.

"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

Instrucțiunea Select Case este o altă structură VBA care oferă o modalitate de evaluare a unei game de alternative cu un minim de tastare repetitivă necesară . De asemenea, este mai simplu și mai ușor de citit și ar trebui utilizat atunci când există mai mult de 3 alternative ale variabilei de interes.

VBA: și dincolo de … a puterii mai mari a Select Case, iată o versiune extinsă a Select Case:

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

Această versiune testează pentru intervale de valori (de exemplu, o evaluare mai mare sau egală cu 3,5, dar mai mică sau egală cu 4,5) și permite cuiva care oferă o evaluare fracționată, cum ar fi 2.5.

În plus, în partea de jos a structurii se află controlul „Altfel”. Practic acoperă ev orice altceva nu am acoperit în Elseif-urile noastre precedente. Dacă nimic nu echivalează cu ratingul, partea Else a structurii oferă un control alternativ.

Ei bine, asta este pentru seria de funcții IF. Păstrați feedback-ul, întrebările și sugestiile primite. Ne vedem data viitoare.

Vedeți și

  • SUMA Excel este mult mai mult
  • Realizarea unui Excel complex celulă ușor de utilizat
  • Opțiuni IF mai imbricate
  • Opțiunea CHOOSE în Excel
  • Funcția IF Excel Excel
    Vă mulțumim că ne-ați alăturat! Veți primi un mesaj de bun venit în câteva momente.

Leave a Reply

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *