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

#1 7. 1. 2016 10:47:14

santyzul
Člen
Registrace: 22. 5. 2008
Příspěvků: 14

jakou funkci ? VYŘEŠENÝ

Zdravím

Prosím o radu ohledně zvolení správné funkce.
Potřebuji zhruba toto:

když je číselná hodnota třeba 1 až 5 tak potom třeba A
když je číselná hodnota třeba  5 až 10 tak potom třeba B
když je číselná hodnota třeba 10až 15 tak potom třeba C

funkce if je příliš složitá a neumím se k tak jednoduchým výsledkům dopracovat
Nevíte někdo jak to jednoduše udělat ?

Děkuji předem a přeji pěkný den

Santyzul

Editoval santyzul (12. 1. 2016 16:20:01)

Offline

#2 7. 1. 2016 11:00:35

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 520

Re: jakou funkci ? VYŘEŠENÝ

buď rovnou =IF(A1<=5;"A";IF(AND(A1>5;A1<=10);"B";"C") nebo při složitějsích výrazech takto =CHOOSE(IF(A1<=5;1;IF(AND(A1>5;A1<=10);2;3));"a";"b";"c") nebo =CHOOSE(ROUNDUP(A1/5;0);"a";"b";"c") záleží na tom co se má dít na rozmezích (5,10).

EDiT:
v opačném případě je podmínky Rounddown(A1/5;0)+1

Editoval ludviktrnka (7. 1. 2016 11:03:29)


LibreOffice 5.2.2.2

Offline

#3 7. 1. 2016 18:29:04

santyzul
Člen
Registrace: 22. 5. 2008
Příspěvků: 14

Re: jakou funkci ? VYŘEŠENÝ

Zdravím
Děkuji za odpověď je to téměř dokonalé nicméně já to potřebuji trochu komplikovaněji.
Konkrétně když je
hodnota třeba 2425 až 2450 tak potom 2420
hodnota od 2400 do 2224 potom 2400
hodnota 2155 až 2180 potom 2150
když je hodnota někde mezi a níž potom  "pozor"
vím že je to poměrně komplikované ale věřím, že někdo zkušený bude hned vědět
Děkuji pěkně

Offline

#4 7. 1. 2016 19:25:43

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

Re: jakou funkci ? VYŘEŠENÝ

Základem může být

=AND(A1>2415;A1<2450)*2420+AND(A1>2224;A1<2400)*2400+AND(A1>2525;A1<2750)*2720+AND(A1>1224;A2<1300)*1400

Je to součet podmínek AND.
     Když je vyhodnocena jako TRUE (=1), tak potom dá hodnotu součin s hodnotou, jinak vrátí nulu. Takže potom stačí postavit rozsahy podmínek tak, aby se "nekřižovaly" - tedy aby dvě různé podmínky nesmí mít určitou část číselných rozsahů společnou. Pak by se někdy sečetly rozsahy dva - nebo i více:-(
     Když potřebujeme vyhodnotit ostatní podmínky jako "POZOR", musíme to zabalit do funkce IF třeba takto :

=IF(AND(A1>2415;A1<2450)*2420+AND(A1>2224;A1<2400)*2400+AND(A1>2525;A1<2750)*2720+AND(A1>1224;A2<1300)*1400=0;"POZOR";AND(A1>2415;A1<2450)*2420+AND(A1>2224;A1<2400)*2400+AND(A1>2525;A1<2750)*2720+AND(A1>1224;A2<1300)*1400)

     Když by tam byl souběh, musely by se dotazy IF vnořit vícekrát - a to by bylo možné také více způsoby - ale je to složitější nežli postovit podmínky bez "průniku".

Editoval neutr (7. 1. 2016 19:28:50)


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

#5 7. 1. 2016 20:30:48

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 520

Re: jakou funkci ? VYŘEŠENÝ

ještě by to šlo poměrně elegantně pomocnou tabulkou zejména tehdy, pokud by kritérií bylo ještě o něco více, nebo by bylo potřeba kriteria občas nějak upravovat:


zadání    2430       
výsledek    2420       
           
            spodní    horní    výsledek
PRAVDA            2425    2450    2420
NEPRAVDA    2224    2400    2400
NEPRAVDA    2155    2180    2150


------------------------------------------------------------------

zadání    2430       
výsledek =IFNA(VLOOKUP(1;A5:D7;4;0);"pozor")       
           
                    spodní    horní    výsledek
=AND($B$1>B5;$B$1<C5)    2425    2450    2420
=AND($B$1>B6;$B$1<C6)    2224    2400    2400
=AND($B$1>B7;$B$1<C7)    2155    2180    2150


LibreOffice 5.2.2.2

Offline

#6 8. 1. 2016 15:50:45

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

Re: jakou funkci ? VYŘEŠENÝ

Z předpokladu celých čísel v řádku:

=IFNA(CHOOSE(MATCH(A1;{2450;2424;2400;2223;2180;2154};-1);2420;"pozor";2400;"pozor";2150;"pozor");"pozor")

Lepší je to převést do tabulky a prostě použít funkci VLOOKUP.

Offline

#7 8. 1. 2016 16:14:56

santyzul
Člen
Registrace: 22. 5. 2008
Příspěvků: 14

Re: jakou funkci ? VYŘEŠENÝ

Díky velice za rady zkusím to tedy tou funkcí "vole kup" (reklamní slogan :-)
Zdá se sice na první pohled složitější ale taktéž se jeví jako jednodušeji editovatelná zvláště při změně požadovaných výsledných hodnot. Ještě nikdy jsem to nedělal tak doufám, že to zvládnu.
jak jsem již řekl díky moc za čas a smějte se.....

Offline

#8 11. 1. 2016 10:56:29

santyzul
Člen
Registrace: 22. 5. 2008
Příspěvků: 14

Re: jakou funkci ? VYŘEŠENÝ

Zdravím

Všechno funguje dle návodu ale tabulka je vztahuje vstupní hodnoty na jednu zadávající buňku (na nějž je zafixována) a když mám pod sebou cca 80 buněk (sloupeček)z kterých právě potřebuji „logicky" vypočítat předdefinované hodnoty. Prosím ještě o vyřešení tohoto detailu.

Děkuji

Offline

#9 11. 1. 2016 11:20:27

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

Re: jakou funkci ? VYŘEŠENÝ

Vymáte jste dostal těch návodů hned několik, takže já si neumím představit jaký návod jste akceptoval.
     Pokud Vám jde ale pouze a jenom o načítání jedné konstantní buňky například A1 tak tuto adresu dejte jako absolutní tedy $A$1. Praktický postup je ten, že ve vzorci "vymodříte" určitiu adresu a stisknete Alt+F4. Ta se pak "obalí" dalary. Když to uděláte opakovaně dolary se ubírají v cyklu. To si ale otestujte.


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

#10 11. 1. 2016 13:15:11

santyzul
Člen
Registrace: 22. 5. 2008
Příspěvků: 14

Re: jakou funkci ? VYŘEŠENÝ

postupoval jsem tímto způsobem (viz. níže) s tím, že mám sloupeček vstupních hodnot (( cca 80 řádků a potřebuji sloupeček výsledků. Což níže uvedeným způsobem nelze,tam je jedna vstupní buňka kterou nelze řetězit jak to udělat bez ukotvení na jednu buňku ?
Díky

ludviktrnka napsal(a)

ještě by to šlo poměrně elegantně pomocnou tabulkou zejména tehdy, pokud by kritérií bylo ještě o něco více, nebo by bylo potřeba kriteria občas nějak upravovat:


zadání    2430       
výsledek    2420       
           
            spodní    horní    výsledek
PRAVDA            2425    2450    2420
NEPRAVDA    2224    2400    2400
NEPRAVDA    2155    2180    2150


------------------------------------------------------------------

zadání    2430       
výsledek =IFNA(VLOOKUP(1;A5:D7;4;0);"pozor")       
           
                    spodní    horní    výsledek
=AND($B$1>B5;$B$1<C5)    2425    2450    2420
=AND($B$1>B6;$B$1<C6)    2224    2400    2400
=AND($B$1>B7;$B$1<C7)    2155    2180    2150

Offline

#11 11. 1. 2016 13:17:04

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 520

Re: jakou funkci ? VYŘEŠENÝ

tak dejte do políček E1:G4 toto:
spodní    horní    výsledek
2155    2180    2150
2224    2400    2400
2425    2450    2420

do slopupce A zadání a do sloupce B neutrův vzorec
=IF(AND(A1>$E$2;A1<$F$2)*$G$2+AND(A1>$E$3;A1<$F$3)*$G$3+AND(A1>$E$4;A1<$F$4)*$G$4=0;"pozor";AND(A1>$E$2;A1<$F$2)*$G$2+AND(A1>$E$3;A1<$F$3)*$G$3+AND(A1>$E$4;A1<$F$4)*$G$4)


LibreOffice 5.2.2.2

Offline

#12 11. 1. 2016 14:09:53

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

Re: jakou funkci ? VYŘEŠENÝ

spodní(B1)   horní(C1)   výsledek(D1)
2425(B2)  <  2450(C2)  =  2420(D1)
2224(B3)  <  2400(C3)  =  2400(D1)
2155(B4)  <  2180(C4)  =  2150(D1)
------------------------------------------------------------------
zadání v buňce A5 (pod tabulkou hodnot a rozsahů)               
           
v buňce B5

=AND($B$2<B5;$C$2>B5)*2425 + AND($B$3<B5;$C$3>B5)*2224 + AND($B$4<B5;$C$4>B5)*2150

V buňce C5 výsledek

=IF(B5 = 0;"POZOR";B5)

Tyto dva vzorce jdou složit do jednoho potom by to bylo jen v B5 takto :

=IF(AND($B$2<B5;$C$2>B5)*2425 + AND($B$3<B5;$C$3>B5)*2224 + AND($B$4<B5;$C$4>B5)*2150 = 0;"POZOR";AND($B$2<B5;$C$2>B5)*2425 + AND($B$3<B5;$C$3>B5)*2224 + AND($B$4<B5;$C$4>B5)*2150)

     Konstrukce může být velice různorodá - co názor to jiné řešení. Toto je stejné jako jsem uváděl dříve, jen ty podmínky AND sčítáme v pomocné buňce - vejde se jich tam tak asi 50. Vlastní výsledek už vyhodnotíme jednoduchým dotezem IF. Jedním vzorcem to jde také, ale pak mu málo rozumíte. To platí i o řešení od "lp." - stačí to co napsal nakopírovat do buňky kterou popsal pro buňku A1 - vzorec tedy do buňky B1 a máte po starosti.
     Já dokonce řeknu, že stačí jen ten mnou uvedený vzorec v pomocné buňce s tím že tam dáte podmíněné formátování (aby buňka zčervenala když bude mít nulu) a pak někde nahoře dáte třeba do D1 Vzorec =IF(Countif(B1:B100;0) > 0; "POZOR " & Countif(B1:B100;0) & " CHYB", "VŠE OK")

Editoval neutr (11. 1. 2016 14:14: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

#13 11. 1. 2016 16:40:59

santyzul
Člen
Registrace: 22. 5. 2008
Příspěvků: 14

Re: jakou funkci ? VYŘEŠENÝ

Zdravím
Děkuji všem za rady a čas a nyní mi tabulka dělá to co jsme chtěl. Jen poslední dotaz (po jehož zodpovězení bych toto téma uzavřel) Proč jsou v tom vzorci ty hodnoty zadány dvakrát? ( myslel jsem ,že je to duplikováno ale když tu zdánlivě duplicitní část vymažu tak to nefunguje)
Díky

Offline

#14 11. 1. 2016 17:46:29

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

Re: jakou funkci ? VYŘEŠENÝ

Jde o toto :

IF ( PODMÍNKA ; ANO ; NE = vyhodnocení podmínky )
Takže PODMÍNKA  se nastavuje jako dotaz [AND(,,,) + AND(,,,) + ..] = 0?  součet AND je roven nule? - to je konec operace - jedno číslo buď nula nebo něco jiného.
když ANO - tak v našem případě vypíšeme tu hlášku "POZOR".
když NE - součet není nula, tak to musíme znovu spočítat - už bez podmínky.
    Podmínka IF se často staví tak že nevrací testovací hodnotu - to je spíš výjimka. Většinou
je to takto =IF(x*y-z = něco(číslo); když ANO tak "Super"; když NE tak "Průser").
    Náš případ je tento =IF(něco(číslo) = 0 ?; když ANO tak "Pozor"; když NE tak "něco(číslo)")

Editoval neutr (11. 1. 2016 17:50:59)


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

#15 11. 1. 2016 19:01:10

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

Re: jakou funkci ? VYŘEŠENÝ

Když se dívám na vzorce, tak jsem se ještě jednou zamyslel:

=IF(A1<$D$2;"Pozor";IF(A1<=VLOOKUP(A1;$D$2:$F$4;2);VLOOKUP(A1;$D$2:$F$4;3);"Pozor"))

A1 : testované číslo
B1 : vzorec

D2:F4 : tabulka jak byla uváděna (spodní mez) (horní mez) (hodnota)

Více podmínek není problém.

Offline

#16 12. 1. 2016 16:18:55

santyzul
Člen
Registrace: 22. 5. 2008
Příspěvků: 14

Re: jakou funkci ? VYŘEŠENÝ

Zdravím
Děkuji tímto všem přítomným za krátký "kurz" v pokročilých funkcích Libre(open)office.
Pěkný den

Offline

Zápatí