IF
Funcția IF returnează una din două valori, în funcție de evaluarea unei expresii specificate la valoarea booleană TRUE sau FALSE.
IF(dacă-expresie; dacă-adevărat; dacă-fals)
dacă-expresie: O expresie logică. Argumentul dacă-expresie poate conține orice, atâta timp cât expresia poate fi evaluată ca o valoare booleană. Dacă expresia este evaluată ca număr, 0 este considerat a fi FALSE și oricare alt număr este considerat a fi TRUE.
dacă-adevărat: Valoarea returnată dacă dacă-expresie este TRUE. Argumentul dacă-adevărat poate conține orice valoare. Dacă argumentul dacă-adevărat este omis (există un semn de punct și virgulă, dar nicio valoare) și dacă-expresie este evaluată la TRUE, funcția IF returnează 0.
dacă-fals: Un argument opțional care specifică valoarea returnată dacă dacă-expresie este FALSE. dacă-fals poate conține orice valoare. Dacă argumentul dacă-fals este omis (există un semn de punct și virgulă, dar nicio valoare) și dacă-expresie este evaluată la FALSE, funcția IF returnează 0. Dacă argumentul dacă-fals este omis complet (nu există niciun semn de punct virgulă după dacă-adevărat) și expresie-dacă este evaluată la FALSE, IF returnează FALSE.
Note
Oricare dintre sau ambele argumente dacă-adevărat și dacă-fals pot conține funcții suplimentare IF (denumite adesea funcții IF imbricate).
Utilizarea funcției IF pentru comparații simple |
---|
Tabelul de mai jos prezintă o modalitate simplă de a urmări notele studenților. |
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
1 | Student | Punctaj test 1 | Punctaj test 2 | Punctaj final | Calificativ | Rezultat final |
2 | 1 | 56 | 59 | 59 | F | Respins |
3 | 2 | 75 | 84 | 84 | B | Admis |
4 | 3 | 100 | 93 | 100 | A | Admis |
Puteți efectua o comparație IF simplă utilizând aceste date. Iată câteva moduri de utilizare a funcției IF: |
Returnați o valoare text pe baza criteriilor: În această formulă sunt utilizate argumentele următoare:
Această formulă atribuie un rezultat "Admis" dacă punctajul la test al studentului 1 este mai mare sau egal cu 60; în caz contrar, se returnează "Respins". |
Returnați o valoare numerică pe baza criteriilor: În această formulă sunt utilizate argumentele următoare:
Această formulă calculează punctajul final ca fiind cel mai mare dintre cele două punctaje la test și poate fi modificată cu ușurință pentru orice alt student din tabelul de mai sus prin modificarea referințelor de celulă, astfel încât să corespundă punctajelor studentului corect. |
Utilizați o funcție IF imbricată pentru a testa mai multe condiții: Formula de mai sus atribuie un rezultat "Admis" dacă cel puțin unul dintre punctajele la test ale studentului este mai mare sau egal cu 60. Formula de mai sus atribuie un calificativ pe baza punctajului final al studentului. Notă: Cu funcții IF imbricate, ordinea comparațiilor este importantă, deoarece formula se oprește după prima instrucțiune adevărată. De exemplu, dacă doriți să adăugați o condiție nouă la formula calificativului "neîncercat", dacă un student are un scor de 0, trebuie să o adăugați ca prima condiție. Adăugarea acesteia la sfârșit returnează "F" chiar dacă scorul este 0, deoarece deja va fi fost evaluată ca fiind mai mică decât 60. Acesta este și motivul pentru care nu este necesară o expresie if separată pentru calificativul "A"; dacă punctajul unui student nu este "B", atunci nu a fost niciun alt calificativ și trebuie să fie "A". |
Încercarea |
---|
Pentru a vedea funcția IF utilizată într-o foaie de calcul Numbers, creați o foaie de calcul nouă cu șablonul "Catalog". Eliminați un nume din tabelul de prezentare generală a clasei și observați cum se schimbă valoarea din coloana "Calificativ final". Explorați funcția utilizată în coloana "Calificativ final". |
Utilizarea funcției IF cu alte funcții |
---|
Formula următoare funcționează cu ISBLANK pentru a determina dacă o celulă este goală. În această formulă sunt utilizate argumentele următoare:
Pentru teste de o complexitate sporită, puteți și să combinați IF cu AND, OR și NOT. |
Nivelul superior cu IFS |
---|
Funcția IFS poate fi utilizată pentru a evalua o serie de expresii și a returna o valoare pe baza primei condiții adevărate, înlocuind mai multe instrucțiuni IF imbricate. |
Exemple suplimentare |
---|
=IF(A5>=0; "non-negativ"; "negativ") returnează textul "non-negativ" dacă celula A5 conține un număr mai mare sau egal cu 0 sau o valoare non-numerică. Dacă celula A5 conține o valoare mai mică decât 0, funcția returnează "negativ". =IF(A5<>0; "Nonzero"; "Zero") returnează textul "Nonzero" dacă celula A5 conține un număr care nu 0. Dacă celula A5 conține 0, funcția returnează "Zero". =IF(IFERROR(OR(ISEVEN(B4+B5); ISODD(B4+B5)); FALSE); "Toate sunt numere"; "Nu toate sunt numere") returnează textul "Toate sunt numere" dacă atât celula B4, cât și celula B5 conțin numere; în caz contrar, returnează textul "Nu toate sunt numere". Acest lucru se realizează prin testare pentru a vedea dacă suma celor două celule este pară sau impară. Dacă celula nu conține un număr, funcțiile EVEN și ODD returnează o eroare, iar funcția IFERROR returnează FALSE; în caz contrar, aceasta returnează TRUE deoarece fie EVEN, fie ODD este TRUE. Deci, dacă oricare dintre B4 și B5 nu conține un număr sau o valoare booleană, instrucțiunea IF returnează expresia dacă-fals, "Nu toate sunt numere"; în caz contrar, returnează expresia dacă-adevărat "Toate sunt numere". |
Exemple - Evitarea erorilor cauzate de împărțirea la 0 |
---|
Uneori, nu este posibilă realizarea unui table într-o manieră care să poată evita împărțirea la 0. Însă, dacă împărțirea la 0 survine, rezultatul este o valoare de eroare în celulă, ceea ce nu este în general de dorit. Acest exemplu prezintă trei metode de a preveni această eroare. Să presupunem că celulele D2 și E2 conțin fiecare câte un număr. Este posibil ca E2 să conțină 0. Doriți să împărțiți D2 la E2, dar să evitați o eroare de împărțire la 0. Fiecare dintre următoarele trei metode returnează 0 dacă E2 este egal cu 0; în caz contrar, fiecare returnează rezultatul operației D2/E2. =IF(E2=0; 0; D2/E2) operează prin testarea directă a celulei E2 pentru a vedea dacă este 0. =IFERROR(D2/E2; 0) operează prin returnarea valorii 0 dacă survine o eroare. Împărțirea la 0 este o eroare. =IF(ISERROR(D2/E2); 0; D2/E2) operează prin realizarea unui test logic pentru a afla dacă D2/E2 este TRUE. |
Exemplu folosind REGEX |
---|
Fie ca A1 să conțină "marina@exemplu.com" =IF(A1 = REGEX("([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2;4})"); "Conține e-mail"; "Niciun e-mail") returnează "Conține e-mail". |