IF
Funkcia IF vráti jednu z dvoch hodnôt podľa toho, či sa zadaný výraz vyhodnotí ako booleovská hodnota TRUE alebo FALSE.
IF(výraz podmienky; ak pravda; ak nepravda)
výraz podmienky: Logický výraz. výraz podmienky môže obsahovať čokoľvek, pokiaľ bude výsledkom vyhodnocovania výrazu booleovská hodnota. Ak sa výraz vyhodnotí ako číslo, 0 sa považuje za hodnotu FALSE a ostatné čísla za hodnotu TRUE.
ak pravda: Vrátená hodnota, ak je výraz podmienky vyhodnotený ako TRUE. ak pravda môže obsahovať akúkoľvek hodnotu. Ak ak pravda vynecháte (vo vzorci bude čiarka, ale nebude tam žiadna hodnota) a výraz podmienky bude vyhodnotený ako TRUE, funkcia IF vráti 0.
ak nepravda: Voliteľný argument, ktorý špecifikuje vrátenú hodnotu, ak je výraz podmienky FALSE. ak nepravda môže obsahovať akúkoľvek hodnotu. Ak ak nepravda vynecháte (vo vzorci bude čiarka, ale nebude tam žiadna hodnota) a výraz podmienky bude vyhodnotený ako FALSE, funkcia IF vráti 0. Ak sa ak nepravda úplne vynechá (nie je čiarka za argumentom ak pravda) a výraz podmienky bude vyhodnotený ako FALSE, funkcia IF vráti hodnotu FALSE.
Poznámky
Argumenty ak pravda a ak nepravda môžu obsahovať ďalšie funkcie IF (označované ako vnorené IF funkcie).
Používanie funkcie IF na vykonávanie jednoduchých porovnaní |
---|
Tabuľka nižšie uvádza jednoduchý spôsob na sledovanie známok študentov. |
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
1 | Študent | Testovacie skóre 1 | Testovacie skóre 2 | Konečné skóre | Písmeno známky | Konečný výsledok |
2 | 1 | 56 | 59 | 59 | F | Neprešiel |
3 | 2 | 75 | 84 | 84 | B | Prešiel |
4 | 3 | 100 | 93 | 100 | A | Prešiel |
Pomocou týchto dát môžete vykonať jednoduché porovnanie s funkciou IF Tu je niekoľko príkladov používania funkcie IF: |
Vráti sa textová hodnota na základe kritérií: V tomto vzorci sa používajú tieto argumenty:
Tento vzorec priradí výsledok "Prešiel", pokiaľ je testovacie skóre študenta 1 vo výške 60 alebo viac. Ak nie, priradí sa "Neprešiel". |
Vráti sa číselná hodnota na základe kritérií: V tomto vzorci sa používajú tieto argumenty:
Tento vzorec vypočíta konečné skóre ako vyššie z dvoch testovacích skóre a je možné ho jednoducho upraviť pre akéhokoľvek študenta v tabuľke nižšie tak, že sa zmenia odkazy na bunky, aby sa zhodovali so správnymi skóre študenta. |
Používanie vnorenej funkcie IF na otestovanie ďalších podmienok: Vzorec vyššie priradí výsledok "Prešiel", pokiaľ je testovacie skóre aspoň jedného zo študentov 60 alebo vyššie. Vzorec vyššie priradí hodnotiacu známku podľa konečného skóre študenta. Poznámka: Pri vnorených funkciách IF je dôležité poradie porovnaní, pretože vzorec sa zastaví po prvom výraze pravda. Ak chcete napríklad pridať do vzorca hodnotiacej známky novú podmienku "neskúšaný" v prípade, že študent má skóre 0, musíte ju pridať ako prvú podmienku. Ak ju pridáte na koniec, vo výsledku sa vráti "F", aj keď bude skóre 0, pretože jeho skóre sa už vyhodnotilo ako menej než 60. To je aj dôvod, prečo nie je pre hodnotiacu známku "A" potrebný samostatný if výraz. Ak študentovo skóre nie je "B" nebola to ani nijaká iná známka a musí to byť "A". |
Vyskúšajte to |
---|
Ak chcete vidieť, ako sa funkcia IF používa v tabuľke Numbers, vytvorte novú tabuľku pomocou šablóny "Klasifikačný záznam". Odstráňte meno v tabuľke Prehľad triedy a pozrite sa, ako sa tým zmení hodnota v stĺpci "Známka". Spoznajte funkciu použitú v stĺpci "Známka". |
Používanie IF s inými funkciami |
---|
Nasledujúci vzorec pracuje s funkciou ISBLANK na zistenie, či je nejaká bunka prázdna. V tomto vzorci sa používajú tieto argumenty:
V prípade komplexnejších testov je možné kombinovať aj funkcie IF a AND, OR, ako i NOT. |
Choďte ešte ďalej s funkciou IFS |
---|
Funkciu IFS je možné používať na hodnotenie sérií výrazov a vráti sa hodnota na základe prvej podmienky, ktorá je pravda, a nahradí sa tým niekoľko vnorených výrazov IF. |
Ďalšie príklady |
---|
=IF(A5>=0, "Nezáporné", "Záporné") vráti text "Nezáporné", ak bunka A5 obsahuje číslo väčšie ako alebo rovnajúce sa 0 alebo nečíselnú hodnotu. Ak bunka A5 obsahuje hodnotu menšiu ako 0, funkcia vráti hodnotu „Záporné“. =IF(A5<>0, "Nie je nula", "Nula") vráti text "Nie je nula", ak bunka A5 obsahuje číslo, ktoré je nenulové. Ak bunka A5 obsahuje hodnotu 0, funkcia vráti text „Nula“. =IF(IFERROR(OR(ISEVEN(B4+B5); ISODD(B4+B5)); FALSE); “Len čísla”; “Nielen čísla”) vráti text „Len čísla“, ak bunky B4 aj B5 obsahujú čísla. V opačnom prípade vráti text „Nielen čísla“. Dosiahne sa to testovaním, čím zistíte, či je súčet oboch buniek párny alebo nepárny. Ak bunka neobsahuje číslo, funkcie EVEN a ODD vrátia chybu a funkcia IFERROR vráti hodnotu FALSE. V opačnom prípade vráti hodnotu TRUE, pretože funkcia EVEN alebo ODD je TRUE. Preto, ak bunka B4 alebo B5 neobsahuje číslo alebo booleovskú hodnotu, príkaz IF vráti výraz ak nepravda "Nielen čísla". V opačnom prípade vráti výraz ak pravda "Len čísla". |
Príklady: predchádzanie chybám, keď dôjde k deleniu nulou |
---|
V niektorých prípadoch nie je možné zostaviť tabuľku tak, aby sa predišlo deleniu číslom 0. Ak sa vo výpočte vyskytne delenie číslom 0, výsledkom je chybová hodnota v bunke, čo je obvykle neželaný výsledok. V nasledujúcom príklade si ukážeme tri rôzne spôsoby predchádzania tejto chybe. Predpokladajme, že bunky D2 a E2 obsahujú čísla. Je možné, že E2 obsahuje 0. Chceme vydeliť hodnotu v bunke D2 hodnotou v bunke E2 a zároveň predísť deleniu nulou. Každá z troch nižšie uvedených metód vráti 0, ak sa bunka E2 rovná 0; ináč vráti výsledok D2/E2. =IF(E2=0; 0; D2/E2), priamo otestuje, či sa E2 rovná 0. =IFERROR(D2/E2; 0), ak sa vo výpočte vyskytne chyba, vráti 0. Delenie nulou je chyba. =IF(ISERROR(D2/E2); 0; D2/E2), vykoná logický test, ktorý vyhodnotí, či je D2/E2 TRUE. |
Príklad s použitím funkcie REGEX |
---|
Bunka A1 obsahuje „marina@example.com“ =IF(A1 = REGEX("([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"); "Obsahuje email"; "Žiaden email") vráti „Obsahuje email“. |