KDYŽ / IF funkce vnořené do sebe

Upozornění:

Tento návod se týká použití funkce KDYŽ pro vyhodnocování více možností než dvou. Pokud používáte Excel po aktualizaci, která proběhla cca v únoru 2016, doporučujeme využít funkci IFS, kterou se většina úkolů řešených vnořenou podmínkou dá řešit jednodušeji.


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:

31 comments on “KDYŽ / IF funkce vnořené do sebe
  1. Petr Č. napsal:

    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. Jiří Beran napsal:

    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. Jan Vlach napsal:

    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. Angua napsal:

    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. elada napsal:

    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. Janina napsal:

    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. Petr napsal:

    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. Jiří Beran napsal:

    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. Hana napsal:

    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. Jiří Beran napsal:

    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. Treew napsal:

    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. Treew napsal:

    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. Jitka napsal:

    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. Jiří Beran napsal:

    Dobrý den Jitko,
    na počítání bonusů se typicky používá toto:
    http://vyuka-excelu.cz/navody/funkce/svyhledat-vlookup-funkce-pro-propojovani-vice-tabulek/pouziti-funkce-vlookup-svyhledat-pro-interval/
    Je to ono?
    JB

  15. Jitka napsal:

    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)

  16. Honza napsal:

    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.

  17. Dušan napsal:

    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.

  18. Jirka napsal:

    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.

  19. Jirka napsal:

    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ý.

  20. Jirka napsal:

    Už to funguje. problém jsem si vyřešil sám :D.

  21. Lukáš napsal:

    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.

  22. Jiří Beran napsal:

    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;““)

  23. Tomáš Janků napsal:

    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ě.

  24. Jiří Beran napsal:

    Dobrý den,
    nevím jestli přesně rozumím, ale měla by Vám pomoct funkce COUNTIFS zkombinovaná s KDYŽ:
    http://vyuka-excelu.cz/navody/funkce/countifs/

  25. Tomáš Janků napsal:

    Funguje, moc děkuju!

  26. Tomáš Gec napsal:

    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.

  27. Emil napsal:

    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

  28. Jiří Beran napsal:

    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.

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

Vyhledávání

Exact matches only
Search in title
Search in content
Search in posts
Search in pages
Filter by Categories
Nezařazené

Nyní otevřený kurz

Jednodenní Excel v praxi

  • 14.3.2017
  • V Praze
Další info / přihláška

Firemní kurzy

  • Přemýšlíte o firemním školení Excelu?
  • Školíme Excel od začátečníků po experty, ale také PowerPoint, PowerPivot nebo Access.
Mám zájem o kurz

Individuální výuka

Mám zájem o výuku

Vývoj aplikací v Excelu (makra - VBA)

  • Vyvíjíme aplikace pro potřeby firemních zákazníků
  • Reporty, vizualizace dat, harmonogramy, plánování
  • Slučování dat ze souborů, agregace, exporty
Zajímám se o vytvoření aplikace

Kontakt

  • Tel: +420 602 274 999
  • Mail: info@vyuka-excelu.cz
Kontaktní formulář

FB CZ

TOPlist