S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.

V praxi se docela často dostaneme do situace, kdy potřebuji pomocí funkce KDYŽ / IF určit hodnotu buňky, ale nestačí nám dvě možnosti. Například potřebujeme určit, jestli je v nějaké buňce kladné číslo, záporné číslo nebo nula – tedy jedna ze tří možností.

Jak funkce vnořovat

Funkce KDYŽ umí pracovat pouze tak, že posoudí splnění podmínky a podle splnění nebo nesplnění stanoví hodnotu buňky, neboli “něco napíše”. Umí ale pracovat jen se dvěma hodnotami “buď a nebo”. My ale můžeme potřebovat tři možnosti – menší než nula, větší než nula a nula. Řešením je použít dvě funkce KDYŽ najednou a vnořit je do sebe.

Zápis funkce pak bude vypadat např. takto:

  • =KDYŽ(A1>0;”kladné číslo”;KDYŽ(A1=0;”nula”;”menší než nula”))

Exelu tímto říkám “Jestli je v A1 číslo větší než nula, napiš “kladné číslo”. V opačném případě se rozhoduj dále – je-li v A1 nula, napiš “nula”. Pokud ani tato podmínka není splněná, napiš “menší než nula”. Poznámky:

Videonávod:

Vnořování funkcí KDYŽ se můžete naučit i v našem elearningu:

Elearning středně pokročilý Excel:

S tímto tématem se setkáte na našich kurzech ExcelTown.
Aktuálně: kurzy můžete absolvovat jak online, tak prezenčně.

1 Komentář

  1. Dobrý den, jak mohu v rolovacím seznamu, kde mám 8 možných výběrů nastavit funkci, která mi podle výběru v seznamu překlopí do tabulky pod seznamem hodnoty z osmi tabulek, které mám připravené s daty? Funkcí KDYŽ je to dosti krkolomné a hlavně co jsem četl, tak je možné provést max 7 krát funkci KDYŽ a já jich potřebuji 8. Funkci IFS nemám.
    Děkuji za odpověd Petr

  2. Dobrý den,
    tohle se nedá určit bez přesného popisu problému. Doporučil bych ale podívat se na funkci SVYHLEDAT…

  3. Dobrý den, řeším jeden problém. Mám seznam jmen (cca 70 záznamů). V excelu mám buňku, ve které si mohu v seznamu vybrat jedno ze 70 jmen. Potřeboval bych, aby se mi vedle buňky, kde vybírám konkrétní jméno zobrazila informace o jeho idčku. Řešit to přes if-else mi přijde velmi nevhodné, ale nevím, jak jinak bych to měl udělat, aby to fungovalo. Za všechny rady moc děkuju 🙂

  4. Dobrý den, prosím o radu. Buňka s funkcí B1=když(A1=”strom”;100;””) je půl mé cesty. Potřebuji k ní přidat B1=když(A1=”zvíře”;150;””). Jde je nějak seřadit za sebe aby tedy bylo v jedné buňce více funkcí?
    Díky 🙂

  5. Dobrý den, mám tabulku s hodnocením studentu-znamky, mám je převést na slovní hodnocení (vyborne, atd.) použijí fci když, ale mám dat když je tam 1, bude výborné, když bude 2, bude chvalitebné. Jde mi to pouze u jedné buňky. Další, zřejmě mám ve vzorečku chybu, jak byste to resil. Děkuji za info a pomoc. St. Fiserova

  6. Dobry den,
    prosim o radu – nevim, zda se neda take resit funkci kdyz, mam tabulku s prehledem minimalni zasoby zbozi (cca 5000 radku) pro 100 prodejen. Minimalni zasoba je v rozmezi 0 – 50. Potrebovala bych v teto tabulce zmenit vsechny hodnoty vyssi nez 3 na 3. Predem diky za jakoukoli radu.

  7. Dobrý den, prosím o radu. V excelu řeším problém. Mám modely v rolovacím seznamu (model: S,M,L,XL) a další rolovací seznam, ve kterém si můžu vybrat úroveň obtížnosti (úroveň: jednoduchá, střední, expert). Podle modelu a úrovně obtížnosti je nastavené jiné číslo. Zkrátka když si vyberu ze seznamu model L a zvolím si ze seznamu obtížnost střední, tak aby mě to vyhodilo číslo podle toho co sem si vybral.

    Vše mám v tabulce použil jsem funkci KDYŽ, SVYHLEDAT, VVYHLEDAT, ale pořád mi to nefunguje. Poradíte mi prosím? Děkuji.

  8. Dobrý den Petře,
    možná by šlo spojit model a obtížnost do jednoho textového řetězce (např. Sjednoduchá, a to ve vybírací tabulce i v původních datech, a pak použít klasícký SVYHLEDAT…

  9. Mám tabulku a chci vytvořit funkci a nevím si rady. V jednom sloupci mám datum splatnosti, ve druhém splatnost a ve třetím způsob úhrady. Zvládla jsem udělat vzorec, který mi ve sloupci splatnost hlásí, že faktura je po splatnosti =KDYŽ((DNES()>=F19);”po splatnosti”;””) a když je stále ve lhůtě, je pole prázdné, ale problém je, že bych funkci chtěla rozvinout tak, aby mi při doplnění způsobu úhrady (dobírkou, hotově, převodem) ve sloupci splatnost také funkce hlásila, že je faktura zaplacena. Můžete mi prosím poradit?

  10. Obecně pokud byste informaci o splatnosti měla v buňce F20, může to fungovat nějak jako:
    =když(délka(F20)>0;”zaplaceno”;KDYŽ((DNES()>=F19);“po splatnosti“;““))
    Tím říkáte, že když je cokoliv v buňce F20, je faktura zaplacená. Jinak se řeší splatnost.

  11. Dobrý den, potřebuji pomoci. Mám 2 tabulky
    V 1. je zboží které firma má-třeba: pes, kočka, nit, kolo, kruh, vana
    Ve 2. je zboží které bylo předáno na pobočku vždy jen určitý druh zboží ne vše co obsahuje 1. tabulka: pes, kolo, vana
    Z 2. tabulky se do 1. po vyhledání stejného zboží napíší kusy co firma předala pobočce a odečtou se od celkové zásoby firmy.
    Problém nastává ve chvíli kdy se u zboží které nebylo přidáno objeví #N/A a nenapíše se “”. V 1. tabulce je 6 druhů zboží, ve 2 jsou 3 druhy. U zbylých 3 druhů které zůstaly bez pohybu je stále N/A a nevím co s tím. Takto se mezi sebou bude porovnávat cca 4000 druhů zboží proti vydanému zboží pobočkám. Děkuji za pomoc.

  12. Ještě dodatek ke stejnému problému: 1. tabulka-v tabulce se vždy píše zboží které se předává dál na pobočky a nebo se nakupuje do firmy.

    Prosím o radu jak udělat když dotyčný který vydá zboží pobočce jej napíše do tabulky 2, že zboží předal a kolik a zapomene jej napsat do 1. tabulky. Vlastně v 1. tabulce zboží nebude.

    Chtěla bych pro tento případ aby se napsala u kusů HLÁŠKA ŽE MUSÍ ZBOŽÍ NEJDŘÍVE NAPSAT DO TABULKY 1 I S POČÁTEČNÍM STAVEM. Děkuji za pomoc.

  13. Dobrý den,
    Potřebovala bych prosím poradit..
    Mám seznam cca 50 zákazníků, každý zákazník ma 5 různých bonusů (0,5%, 1%,2%atd). Bonus je závislý na splnění kvartálu.
    Nevím jak mám zadat vzorec, když tam mám tolik proměnných…

  14. Dík za rychlou odpověď.
    Ale úplně nevím jestli je to ono.. u me je totiž “znamka” kterou neznám je to výpočet =aktuální prodej*%bonusu (které je počítáno z 5ti možných hodnot) prodej se bere za kvartál (takže 4 sloupce)

  15. Dobrý den,
    měl bych dotaz. nějak se mi nevede toto vyřešit.

    mám v buňce A1 hodnotu (tato hodnota je součtem z předchozích listů) a potřebuji mi to vypsalo do buňky A2 tyto hodnoty. Když hodnota v buňce A1 bude od 0-9 vypsal do buňky A2 0,když bude od 21-30 tak vypsal 20 ,když bude od 21-30 tak vypsal 40 a když bude větší než 31 tak vypsal 60.

    Je možné toto řešit přes když? nějak se mi nevede tento vzorec poskládat. Předem moc děkuji za pomoc.

    H.

  16. Dobrý deň, hľadám vhodnú funkciu na hľadanie znaku. Vysverlím príklad.
    Bunka obsahuje 1,6,8 alebo 1,2,3,68 alebo 7,8,2 …..(t.j. sú v rôznom počte v rôznom poradí a majú text atribút)
    hľadám výskyt či sa v bunke nachádza 2 (pozn. potrebujem vyfiltrovať výskyt 2.
    Vopred ďakujem za pomoc.

  17. Dobrý den,
    potřeboval bych poradit jestli existuje nějaká funkce nebo jak vyřešit následující problém.
    Mám 1. tabulku kde se v prvním sloupci nachází celá jména např. Josef Dobrý a ve druhém sloupci jejich tituly např. Ing. V 2. tabulce chci aby se podle zadaného jména z rolovátka z první tabulky přiřadil titul.
    Předem moc děkuji.

  18. Ještě dodatek k mému problému, řešil jsem to pomocí SVYHLEDAT. To funguje, když mám rozdílná jména (Jirka, Josef, Hozna), pokud ale použiju stejná jména , ale rozdílná přijmení (Josef Dobrý, Josef Opadavý), vyhazuje mi to hodnotu podle prvního nalezeného jména tedy v tomto případě Josef Dobrý.

  19. Dobrý den, potrebujem použiť jednoduchú funkciu “když” v tabuľke, kde mám 3 stĺpce. Hodnota v prvom a druhom je zadávaná ručne. Prvý je inventúrny stav(počet) výrobkov a druhý je počet príjatý počas týždna. Tretí stĺpec je vzorec počítajúci spotřebu za daný týždeň. Funkciu chcem použiť na to, aby ma upozorňovala keď nahodím inventúrny stav nižší jako je potřebné množství skladu. Zadať funkciu nie je problém. Problém je to, že každý týždeň dohadzujem nové stĺpce (s novou inventurou) a nerád by som každý týždeň menil vzorec s funkciou. Napadá mi či by sa nedalo spraviť aby funkcia platila len pre stĺpec označený nejakou farbou, alebo len pre políčka ručne nahodené (nie počítané pomocou vzorca). Ďakujem vopred za každú radu.

  20. Dobrý den, jestli dobře rozumím, tak hlavní problém je v tom, že se vzorec má počítat jen pro buňky, které neobsahují vzorec.
    Pak se Vám bude hodit funkce ISFORMULA, konkrétně ji můžete zapsat takto:
    =když(isformula(a1)=nepravda;vzorec, který počítáte;””)

  21. Dobrý den, chtěl bych se zeptat, zda jde vyhodnocovat ve funkci KDYŽ i počet hodnot z určitého seznamu. Jde mi o to, že mám seznam nějakých textových hodnot(např. ANO, NE, NEVÍM) a na následujícím listu mám tabulku, kde chci jednotlivé hodnoty sčítát. Například v seznamu je pět odpovědí ano, tak chci číslo 5 přenést do tabulky na následujícím listu. Seznam se samozřejmě rozšiřuje o dané hodnoty nepravidelně.

  22. Dobry den, muj dotaz asi bude trochu obsahlejsi a tak predem dekuji kazdemu kdo se mu bude venovata nude ochotny mi odpovedet.

    Rozhodl jsem se udelat tabulku premiere league ve ktere se budou zaznamenavat vysleky zapasu na listu 2 jsem vytvoril stejnou tabulku vzajemnych zapasu, kde ale byli dane vysledky jiz prevedeny na bodovy zisk tzn. 0 – porazka, 1 – remiza, 3 – vyhra, na listu 3 bych chtel aby se vypisoval do tabulky celkovy pocet bodu daneho celku a take jeho poradi. a ted ke kameni urazu na listu 2 jsem vyuzil dve vlozene funkce když, které vyhodnotí výsledek a přidělí počet bodů. zapis fce vypadal takto: =KDYŽ(List1!B4>List1!C4;”0″;KDYŽ(List1!B4<List1!C4;"3";"1")) z toho ale plyne ze si mi vzdy na listu 2 vypise pocet bodu ale kvuli rozkopirovani formatu to u neodehranych zapasu vypisuje 1 bod protoze nulove hodnoty jsou si rovny. to pak vyznamnym zpusobem ovlivnuje poradi tymu.

  23. Dobrý den, potřeboval bych poradit s následujícím:
    Mám 3 výrobní směny (ranní 8hod start v 5:30, Odpolední 8hod -start v 13:30 a noční start v 21:30)
    čas najetí výrobní zakázky XY byl v 7:55. Rád bych vypočítal produktivní čas a prostojový čas.
    produktivní čas = PČ – Prostoje (ve výše uvedeném 7:55 – 5:30, tedy 2:25 hod) Potřebuju obecný vzorec, který byl platil pro všechny zakázky.
    Děkuju
    Emil

  24. Obávám se, že tohle nepůjde žádným jednoduchým vzorcem. Bude třeba pohrát si vác s podmínkami a s počítáním hodin.

  25. Dobrý den,
    V Excelu jsem použil šablonu „Rozvrh směn zaměstnanců“, která po vložení údaje z rozbalovacího okna spočítá celkový počet hodin.
    Jak dosáhnout toho, aby se po výběru údajů z rozbalovacího okna zobrazil v jiné buňce vybraný časový interval, např. 11:00 – 13:00.
    Děkuji za odpověď.

  26. Dobrý deň,
    potreboval by som poradiť s týmto. Mám zoznam značiek áut (napr. ŠKODA, AUDI, VW, FORD) – v bunke A1 si z rozbalovacieho zoznamu vyberiem konkrétnu značku (cez overenie údajov) a potrebujem aby sa v B1 variabilne menil zoznam modelov.
    Teda ak vyberiem v bunke A1 ŠKODU, chcem aby v bunke B1 bol zoznam RAPID, OCTAVIA, SUPERB…, ak vyberiem v bunke A1 AUDI, chcem aby v bunke B1 bol zoznam RS3, RS4, RS5, RS6, RS7, atd atd

    Dá sa to? 🙂

  27. Ahoj, rada bych se zeptala jak pomoci funkce kdyz zjistím, zda se udaj v jednom sloupci nachazi i ve sloupci druhem. Mam v bunce B3 telefonní číslo a potřebuji zjistit zda se vyskytuje i ve sloupci D kde je telefonních čísel několik. Jaky vzorec mám pro funkci použít?

    Dekuji

  28. Mám problém napíšu tuto fci
    =IF(G20100000;”B”;”=0,3164/G20ˆ0,25″))
    ale nevím proč se mi to nedopočítá do výsledku toho vzorce jen se mi tam napíše 0,3164/G20ˆ0,25

  29. Mám problém napíšu tuto fci
    =IF(G20100000;”B”;”=0,3164/G20ˆ0,25″))
    ale nevím proč se mi to nedopočítá do výsledku toho vzorce jen se mi tam napíše 0,3164/G20ˆ0,25

  30. Protože máte špatně vzorec 🙂 Jak to má logicky fungovat?

  31. Dobry den, jak by se potom udelala funkce “kdyz”se spojenim “zaokrouhleni nahoru” na 100 u tohoto vzorecku, prosim? =KDYŽ(Tabulka5[@Červenec]>23000;Tabulka5[@Červenec]+Provize!D11;”0″)
    Mockrat dekuji

  32. Dobrý den,
    pro vícenásobnou podmínku v přehledné variantě je možné použít toto:
    a) pro čísla:
    =KDYŽ(podmínka_1;rovnice_1;0)+KDYŽ(podmínka_2;Rovnice_2;0)+…+KDYŽ(podmínka_n;Rovnice_n;0)
    b) v případě textu (string):
    =KDYŽ(podmínka_1;text_1;””)&KDYŽ(podmínka_2″;text_2;””)&…&KDYŽ(podmínka_n”;text_n;””)

    Toto řešení je vhodné pokud chceme roztahovat do řádků…

  33. Dobrý den,
    potřebuji vyřešit relativně jednoduchou věc:
    ve třech buňkách mám počet ks daného zboží A1-červené, B1-modré, C1-celkem (A1+B1) a v dalších třech buňkách počet požadovaných odebrání daného zboží, tedy D1-červené, E1-modré, F1-celkem. Potřebuji, aby po doplnění počtu odebraného zboží se o tento počet snížila hodnota v buňce A1 resp. B1 a tím pádem v C1, aniž by se vytvořil cyklický odkaz.
    Děkuji.

  34. @Honza: Hádám, že se bude jednat o něco jako skladové zásoby. Takže tam budete mít někde nějaký počáteční stav, který budete snižovat o počet vydaného zboží. Takže buď přidáte někde buňky s počátečním stavem a v buňkách A1 a B1 bude výpočet toho počátečního stavu mínus údaje v buňce D1, resp. E1, nebo ten počáteční stav zadáte přímo do funkce v buňce A1, resp. B1, tedy například A1=10-D1 (pokud by byl počáteční stav 10). Každopádně buňky A1 a B1 se budou dopočítávat samy, ale vzorec v nich nesmí obsahovat je samé.

  35. Tato varianta bohužel nefunguje. Prostě to chci mít jednoduše takto 🙂
    A1 obsahuje 4
    B1 obsahuje 6
    C1 = A1+B1
    do D1 zadám 3 a tedy A1 by měla obsahovat 1
    do E1 zadám 3 a tedy B1 by měla obsahovat 3
    F1 = D1+E1

  36. @Honza: Pak by to tedy bylo takto:

    v A1 bude funkce =4-D1
    v B1 bude funkce =6-E1

    Zbytek zůstane. Ale bude to samozřejmě fungovat jen v případě, že A1 bude na počátku vždycky 4 a B1 bude na počátku vždycky 6. Mohu se zeptat, k jakému účelu toto potřebujete?

  37. @Standa:
    Tohle se zdá použitelné 🙂 Je to přitom jednoduché a nevím, jak na nelze nepřijít.
    Díky moc, zdravím-

  38. Ahoj! potřebuji radu, nevím si jak zkombinovat když, dnes a countif.

    Když
    ve sloupci A bude počáteční termín práce
    ve sloupci B budu konečný termín práce
    Ve sloupci C budu mít jména X,Y,Z

    1) chci vyjádřit, že pokud je dnes v intervalu mezi A,B, chci vrátit počet X/Y/Z.
    2) chci vrátit počet hodnot X/Y/Z, pokud je dnes před počátečním termínem práce.

    Vůbec nevím, jak to zkombinovat dohromady, hází mi to samé chyby 🙁 Děkuji moc!
    K.

  39. Dobrý den,
    mám dvě tabulky A a B v tabulce A je šest sloupců a 650 řádek v tabulce B jsou 4 sloupce a 800 řádek potřebuji porovnat A s B – první čtyři buňky v řádce, jsou-li stejné nakopírovat do B za stejné čtyři buňky to co je v A. Můžete mi prosím poradit, IF mi moc nepomohlo.
    Děkuji Josef

  40. Dobrý den, potřebuji poradit. Mám výsledky přihlášek, kdy mám v každém sloupci (B AŽ D) jeden den konání akce. Přihlášení mi do každého sloupce napsali “ano” nebo “ne”. Jak mohu jednoduše ke každému jménu přiřadit zda je dotyčný přihlášený na celý pobyt nebo jen na část pobytu? Poradil byste? Předem děkuji.

  41. Dobrý den, jak je to, když potřebuji střídat dokonce 3 funce když? Tzn: Když je v buňce A, chci, aby mi to napsalo F. Když je v buňce C, chci aby mi to napsalo Y. A když je v buňce B, chci aby mi to napsalo M…

Komentáře není možné přidávat