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 va returna 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 va returna 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 va returna 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).
Exemple |
---|
=IF(A5>=0; "non-negativ"; "negativ") returnează textul "non-negativ" dacă celula A5 conține un număr mai mare sau egal cu zero sau o valoare non-numerică. Dacă celula A5 conține o valoare mai mică decât 0, funcția returnează "negativ". =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 vor returna o eroare, iar funcția IFERROR va returna FALSE; în caz contrar, aceasta va returna 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 va returna expresia dacă-fals, "Nu toate sunt numere"; în caz contrar, va returna expresia dacă-adevărat "Toate sunt numere". |
Exemple - Evitarea erorilor cauzate de împărțirea la zero |
---|
Uneori, nu este posibilă realizarea unui table într-o manieră care să poată evita împărțirea la zero. Însă, dacă împărțirea la zero 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 zero. Fiecare dintre următoarele trei metode va returna 0 dacă E2 este egal cu zero; î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 zero 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ă "ion@popescu.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". |