Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 30. 5. 2019 14:34:23

chudikp
Člen
Registrace: 19. 12. 2011
Příspěvků: 4

CALC, výpočet cen za pobyt - VYŘEŠENO

Zdravím všechny. Prosím Vás, jde v CALC nějakou funkcí pořešit když mám věk účastníků v 1 sloupci a potřebuji vypočítat kolik má kdo platit, do 10 let je jedna taxa, do 15 let jiná a dospělý třetí. Zatím jsem si udělal barvy v podmíněném formátování a potom ručně řešil pro každý typ jeden vzorec. ale při větším počtu řádků je to dost náročné na chyby z mojí strany.
Děkuji za každou radu.

Editoval chudikp (30. 5. 2019 19:24:32)

Offline

#2 30. 5. 2019 15:20:54

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,931

Re: CALC, výpočet cen za pobyt - VYŘEŠENO

Není problém. Použijte vzorec IFS, nebo obyčejné IF. Například údaj o věku (číslo například jako číslo, 9, 10, 11, 16, 18, 22,...) v buňce C4. V buňce D4 vzorec:

=IFS(C4<11;"A";C4<16;"B";C4>15;"C")

Princip je v tom, že vzorec testuje sdola nahoru (může i obráceně ale jinak zapsat podmínku) Pokud vyhodnotí první podmínku jako správnou vrátí příslušné hlášení a skončí. Když je první nepravdivá ale druhá ano - vrátí druhé hlášení a skončí. Totéž ve třetí podmínce a může jich být mnoho za sebou :-)


PS:
Místo písmen můžete zadat třeba "dítě", "dorostenec", "dospělý", nebo přímo taxu v Kč. Podmíněný formát obsahuje nejméně 3 možnosti barevné škály pro Apache OpenOffice. LibreOffice jich má nepočítaně. Platí podobné pravidlo jako pro vzorec :- první podmínka buňka<11 .. žlutá, druhá podmínka buňka<16 .. modrá, třetí podmínka buňka>15 .. zelená. Potom stačí stejný podmíněný formát na všechny kontrolované buňky :-)

Editoval neutr (30. 5. 2019 15:32:16)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 30. 5. 2019 19:25:16

chudikp
Člen
Registrace: 19. 12. 2011
Příspěvků: 4

Re: CALC, výpočet cen za pobyt - VYŘEŠENO

Moc děkuji za pomoc.

neutr napsal(a)

Není problém. Použijte vzorec IFS, nebo obyčejné IF. Například údaj o věku (číslo například jako číslo, 9, 10, 11, 16, 18, 22,...) v buňce C4. V buňce D4 vzorec:

=IFS(C4<11;"A";C4<16;"B";C4>15;"C")

Princip je v tom, že vzorec testuje sdola nahoru (může i obráceně ale jinak zapsat podmínku) Pokud vyhodnotí první podmínku jako správnou vrátí příslušné hlášení a skončí. Když je první nepravdivá ale druhá ano - vrátí druhé hlášení a skončí. Totéž ve třetí podmínce a může jich být mnoho za sebou :-)


PS:
Místo písmen můžete zadat třeba "dítě", "dorostenec", "dospělý", nebo přímo taxu v Kč. Podmíněný formát obsahuje nejméně 3 možnosti barevné škály pro Apache OpenOffice. LibreOffice jich má nepočítaně. Platí podobné pravidlo jako pro vzorec :- první podmínka buňka<11 .. žlutá, druhá podmínka buňka<16 .. modrá, třetí podmínka buňka>15 .. zelená. Potom stačí stejný podmíněný formát na všechny kontrolované buňky :-)

Offline

#4 30. 5. 2019 23:38:29

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 803

Re: CALC, výpočet cen za pobyt - VYŘEŠENO

Přehlednější bývá použití funkcí VLOOKUP nebo LOOKUP.

=LOOKUP(C4;{0;11;16};{"A";"B";"C"})

VLOOKUP umožňuje jednoduché nastavení v tabulce.

Princip je v tom, že funkce v setříděném seznamu najdou největší hodnotu, která je menší nebo rovna hledané hodnotě.

Offline

#5 4. 6. 2019 22:10:40

chudikp
Člen
Registrace: 19. 12. 2011
Příspěvků: 4

Re: CALC, výpočet cen za pobyt - VYŘEŠENO

Děkuji za radu. Hodilo by semi mít tři funkce v jednom. Akorát nevím, jestli to jde jak jsem si usmyslel (viz buňka V3). Přes funkci IFS jsem musel ručně přiřadit ceny jídel podle věku, tak jsem to chtěl zkusit dát dohromady s podmínkami, ale nějak jsem se zacyklil. použití Vlookup jsem asi nepochopil. Jsem takový učeň, žádné složitosti nezvládám. Myslíte, že by to nějak šlo?

Děkuji za Vaši snahu
Pavel

Posílám tabulku na úschovnu k nahlédnutí:

www.uschovna.cz/zasilka/NINA33S7T8E968GZ-Z4W

Offline

#6 5. 6. 2019 05:28:07

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,931

Re: CALC, výpočet cen za pobyt - VYŘEŠENO

Opravte si vzorec v buňce V3 :

=IFS(Q3<=10;R3*10+S3*45+T3*20;AND(Q3>10;Q3<=15);R3*15+S3*60+T3*30;Q3>15;R3*25+S3*80+T3*45)

     Nedostatků tam bylo více. Pokud vám vzorec hází chybové hlášení, tak se postavte do té chybné buňky a zavolejte fx což je "průvodce funkcí" na liště těsně nad tabulkou. Ten se otevře a vidíte vzorec rozepsaný. Tam kde je chyba se ukáže červené x. Konkrétně u Vás to bylo dvakrát "t" místo T3. Také jsem smazal nadbytečné závorky a změnil prostřední podmínku. Tam byla chyba při určování rozsahu mezi 9 a 11 let. Při zadání 10 by tato hodnota nebyla správně vyhodnocena. Pro informaci:
test do 10 let včetně - je výhodnější "Q3<11", správně "Q3<=10".
test od 11 do 15 včetně - řešíme pomocí AND(Q3>10;Q3<=15) nebo AND(Q3>10;Q3<16)
     Ještě poznámku pro ostatní uživatele. funkce IFS nemusí fungovat u Apache Open Office. V takovém případě bychom použili vnořené dotazy IF asi takto IF(podmínka;akce při ANO;IF(podmínka;akce při ANO, akce při NE)). Takže vždy se vloží další dotaz do položky nesprávné hodnoty (akce při NE). Vzorec IFS takové vnoření simuluje jen neobsahuje poslední negativní podmínku. Tu však můžeme nahradit negativním dotazem na který je správná volba opačná, nebo spíš typu "vše ostatní". Také má pouze jednu závorku na konci místo počtu který je dán počtem vnořených dotazů včetně základního.

Editoval neutr (5. 6. 2019 05:40:24)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 5. 6. 2019 08:04:49

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,931

Re: CALC, výpočet cen za pobyt - VYŘEŠENO

Tak mne ještě napadlo, že jste neporozuměl původnímu vzorci z příspěvku #2.

neutr napsal(a)

v buňce C4. V buňce D4 vzorec:

=IFS(C4<11;"A";C4<16;"B";C4>15;"C")

Princip je v tom, že vzorec testuje sdola nahoru (může i obráceně ale jinak zapsat podmínku) Pokud vyhodnotí první podmínku jako správnou vrátí příslušné hlášení a skončí. Když je první nepravdivá ale druhá ano - vrátí druhé hlášení a skončí. Totéž ve třetí podmínce a může jich být mnoho za sebou :-)

     Uvědomil jsem si, že jste vzorec přepracoval podle toho jak rozumíte. proto se tam objevili nedostatky a změna rozsahu v prostřední podmínce. Ještě jednou :
první podmínku - věk 10 let lze nastavit tak že použijeme jediný operátor Q3<11 (alternativa Q3<=10)
druhá podmínka - věk 15 let lze nastavit tak že použijeme jediný operátor Q3<16 (alternativa Q3<=15)
     Funguje to tak, že vzorec vždy vyhodnotí první, nebo předcházející podmínky. Proto na druhou podmínku už zbývá jen možnost věk od 11 do 15. Při hodnotě menší - například 9 let to vyhodnotí hned prvá podmínka a druhá se nedostane ke slovu.
     Tohle spolu s nepochopenou podstatou dotazu na vyšší věk (ale s jediným operátorem) vedlo k tomu že jste testoval na viditelnou hodnotu 10,15, více než 15. To není v žádném případě chyba > dělat věci tak jak jim sám rozumím. Proto jsem Váše vyjádření opravil tak aby chodilo.
     Uvědomil jsem si, že jsem Vás asi ještě víc popletl. Zadání podmínek pomocí jediného operátoru je velice úsporné na místo. Může to hrát úlohu při velmi obsáhlých vzorcích. Navíc i stroj má méně práce protože vyhodnocuje pouze výraz "je menší" (<) oproti "je menší nebo rovno" (<=). cenou za to je určitá nelogičnost dotazu na hodnotu která je větší nežli limitní.
     V některých případech by se ukazovala vhodnější notace podmínky "<=". Může vytvořit filtr který určité hodnoty vynechá. Když by v položce bylo desetiiné číslo, pak by mohl nastat případ že například 10,2 už je větší nežli deset, ale toto číslo je menší nežli 11. Takže co použít je případ od případu jiné řešení.


Omlouvám se došlo mi to až mnohem později.

Editoval neutr (5. 6. 2019 08:08:02)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#8 5. 6. 2019 21:38:45

chudikp
Člen
Registrace: 19. 12. 2011
Příspěvků: 4

Re: CALC, výpočet cen za pobyt - VYŘEŠENO

Opravdu moc děkuju, že se nám uživatelům věnujete, už jsem od vás viděl hodně rad. A zabírá to taky spoustu času.
Snad jsem to všechno pochopil, vzoreček jsem si zkopíroval a jede to - vy jste na mě moc chytrý a občas nestíhám sledovat souvislosti...
Přeju krásné dny. P.

Offline

#9 6. 6. 2019 08:55:36

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,931

Re: CALC, výpočet cen za pobyt - VYŘEŠENO

Vaší pochvaly si velice vážím a děkuji.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí