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

#1 26. 10. 2015 13:46:15

jik
Člen
Registrace: 28. 6. 2009
Příspěvků: 43

chyba ve vzorci - VYŘEŠENO

Zdravím,
mám trochu složitější vzorec, který při vložení do tabulky někdy nepracuje správně. Pokud ovšem prohodím dva hlavní sčítané členy, zatím chybu neudělal.
Chybující vzorec:
=IF(OR(F2="A";F2="B";F2="D");$Y2;IF(F2="C";3,8;IF(OR(F2="E";F2="G");0,2;IF(OR(F2="M";F2="H";F2="K";F2="F";F2="S";F2="R";F2="Z");2;IF(F2="X";1;IF(F2="Y";5;IF( OR(F2="N";F2="O";F2="T";F2="U");10;IF(OR(F2="J";F2="P");6;IF(OR(F2="L";F2="V");8;0)))))))))+IF(J2>1;(J2-1)*0,75;0)

Nechybující vzorec:
=IF(J3>1;(J3-1)*0,75;0)+IF(OR(F3="A";F3="B";F3="D");$Y3;IF(F3="C";3,8;IF(OR(F3="E";F3="G");0,2;IF(OR(F3="M";F3="H";F3="K";F3="F";F3="S";F3="R";F3="Z");2;IF(F3="X";1;IF(F3="Y";5;IF( OR(F3="N";F3="O";F3="T";F3="U");10;IF(OR(F3="J";F3="P");6;IF(OR(F3="L";F3="V");8;0)))))))))

Mám vzorový soubor, ale nevidím, jak ho umístit na fórum. Pokud by to někdo ještě před reportováním chyby chtěl prověřit, napište prosím na jik at seznam. Ještě doplním: OpenSUSE 13.2, LO 5.0.2.1.0+

děkuji a zdravím

Juraj Václavík

Editoval jik (30. 10. 2015 11:27:38)

Offline

#2 26. 10. 2015 14:45:23

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

Re: chyba ve vzorci - VYŘEŠENO

Máte chybnou syntaxi na funkci OR. Příklad :
IF(OR(H2="E";H2="G");ANO;NE)
Správně musí být zapsáno Příklad :
IF(OR(H2="E";H2="G")=1;ANO;NE), nebo
IF(OR(H2="E";H2="G")=TRUE;ANO;NE)
     Víc jsem to nezkoumal protože jen těžko odhadnu kde má co být.Vzorec je někde na sloupci AB nebo dál. Takže otestujte a písněte.

Editoval neutr (26. 10. 2015 14:49:04)


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

Offline

#3 26. 10. 2015 21:14:35

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

Re: chyba ve vzorci - VYŘEŠENO

Syntaxe je správně. Psát IF(TRUE=TRUE;ANO;NE) lze, ale proč to dělat.

Zkuste popsat, co je správný a co nesprávný výstup, co může být vstupem, ...

Vzorec lze zjednodušit použitím funkcí VLOOKUP neho HLOOKUP.

Offline

#4 27. 10. 2015 07:19:38

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

Re: chyba ve vzorci - VYŘEŠENO

Pro lp.:
     Chyba jak popisuje autor zřejmě vychází z "#NA + číslo = #N/A" na rozdíl od "číslo + "#NA = číslo". Je tedy třeba hledat chybu v tom dlouhém výrazu. Chyba samozřejmě v "dlouhém" výrazu být nemusí, ale může vyhodnocovat položku s vadným datovým typem buňky. To ale ze vzorce nepoznáme.
     Souhlasím sice s tím, že výrazy logických funkcí je možné psát ve zkráceném výrazu, ale je zde zakopaný pes. Pokud zadáme samostatně například výraz OR (třeba zapouzdřený do IF) tak se změní formát buňky z "čísla", nebo "vše" na Boolean a průšvih je na střeše. Je to podobné jako když sešit sám určí, že formátem je datum. Tohle právě způsobí syntaktickou chybu závislých výrazů.


Pro jik:
     Použijte ke vložení vzoru portál uložto.cz nyní mají dokonce nějakou akci. Až to budete mít uloženo, sem zkopírujte adresu mezi tagy podle návodu kódů BBC (dole hned pod tímto okénkem vlevo). Je možné použít i jiné úložiště například BOX, DROPBOX, LETECKÁPOŠTA a podobně.
     Pokud se Vám to nehodí musíte vyzkoumat podstatu. Například vyhodnoŤte sčítané výrazy samostatně. Výraz který vrátí chybu musíte rozpitvat. Testovat je třeba každý elementární výraz samostatně. Až najdete chybu, tak musíte dohledat zdroj zda neobsahuje na příklad textovou formu čísla, nebo logický formát buňky a podobně.


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

Offline

#5 27. 10. 2015 11:25:41

jik
Člen
Registrace: 28. 6. 2009
Příspěvků: 43

Re: chyba ve vzorci - VYŘEŠENO

Soubor jsem uložil na sem. Zkoušel jsem ono IF(TRUE=TRUE;ANO;NE), ale nic se nezměnilo.

Poznámka 1: chybný výsledek je v K2, správný výsledek je v K3

Poznámka 2: Tento vzorec používáme nezměněný více, než rok, problém se objevil nedávno (možná po nějakém upgrade LO, ale nevím jakém - 4.4? 5?)

Editoval jik (27. 10. 2015 11:31:41)

Offline

#6 27. 10. 2015 13:20:45

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

Re: chyba ve vzorci - VYŘEŠENO

neutr napsal(a)

Chyba jak popisuje autor zřejmě vychází z "#NA + číslo = #N/A" na rozdíl od "číslo + "#NA = číslo".

Pro mne je toto chování novinkou. Která verze to dělá? LO 5.0.2.2 určitě ne. Ale neinstaluji si všechny verze. Pokud je v části výrazu chyba, která se uplatní při výpočtu, je obvykle i výsledkem chyba. Prioritou chyb jsem se ale dosud nezabýval.

neutr napsal(a)

Pokud zadáme samostatně například výraz OR (třeba zapouzdřený do IF) tak se změní formát buňky z "čísla", nebo "vše" na Boolean a průšvih je na střeše. Je to podobné jako když sešit sám určí, že formátem je datum. Tohle právě způsobí syntaktickou chybu závislých výrazů.

První parametr IF je vždy boolean nebo se na tento typ dá převést. A LO 5.0.2.2 určitě nenastavuje formát buňky na boolan vždy když je v prvním parametru OR. Ani v jiných verzích jsem si tohoto chování nevšiml.

Večer se podívám na zaslaný soubor.

Offline

#7 27. 10. 2015 13:40:05

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

Re: chyba ve vzorci - VYŘEŠENO

Tak jsem to upravil jen podle mého původního příspěvku a ten chybný vzorec udělal jedničku (předpokládám, že je to správný výsledek).
=IF(OR(F2="A";F2="B";F2="D")=1;$Y2;IF(F2="C";3,8;IF(OR(F2="E";F2="G");0,2;IF(OR(F2="M";F2="H";F2="K";F2="F";F2="S";F2="R";F2="Z");2;IF(F2="X";1;IF(F2="Y";5;IF( OR(F2="N";F2="O";F2="T";F2="U");10;IF(OR(F2="J";F2="P");6;IF(OR(F2="L";F2="V");8;0)))))))))+IF(J2>1;(J2-1)*0,75;0)

Editoval neutr (27. 10. 2015 13:46:56)


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

Offline

#8 27. 10. 2015 15:47:32

jik
Člen
Registrace: 28. 6. 2009
Příspěvků: 43

Re: chyba ve vzorci - VYŘEŠENO

Zajímavé, ale vlastně se problém nevyřešil, viz nový soubor. Já vlastně ta data získávám jako csv export, ke kterému nakopíruji hlavičku a v ní jsou ty vzorce. Potom vezmu myš a ty vzorce 'roztáhnu' přes celou tabulku. A v tom případě mě ani upravený vzorec správný výsledek hned nedá. Když do toho vzorečku vlezu a trochu ho upravím (znaménko + na začátku vzorce), je vše v pořádku a mohu ho rozkopírovat!

Editoval jik (27. 10. 2015 15:48:31)

Offline

#9 27. 10. 2015 18:29:44

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

Re: chyba ve vzorci - VYŘEŠENO

Tenhle postup potřebuje první aktivaci vzorce (ještě před roztažením). CSV formát je originálně formát textový. K vlastní aktivaci nemusíte psát znaménko plus. Stačí například dát kurzor před znaménko "=", udělat delete do leva (šipka vlevo) + Enter. Tím se vzorec aktivuje a můžete kopírovat.
     Podobný posup : dáme kurzor úplně doprava - dáme klaické DEL + Entr- zkopírujeme do všech buněk.


     Podobný postup aktivace (nejlépe pokud chcete aktivovat vzorce přenesené jako csv) vykopírované jako neaktualizované : - vybrat všechny vzorce (i třeba celý list) a zavolat dialog najít a nahradit (Úpravy - najít a nahradit) vyhledáme "=" a nahradíme zase jen "=" + enter.


     Řetězit "+" a "=" také lze ale je to zbytečné.


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

Offline

#10 28. 10. 2015 00:29:01

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

Re: chyba ve vzorci - VYŘEŠENO

Zřejmě chyba v LO 5.0.2.1, LO 5.0.2.2, možná dřívější. Nevím, jak to vzniklo, soubor by mohl zajímat vývojáře.

Vzorce jsou správně. Po znovuvložení vzorce vzorec začne počítat. Je nutno si uvědomit, že vzorec se znovu vloží jen když je změněn, stačí vložit znak a zase ho smazat. Stejně zafungovalo znovuvložení obsahu F2. Po uložení a novém načtení už vzorce počítají.

Zkuste opravit (znovu vložit) vzorec v šabloně hlavičky.

(Funguje mi to v LO 5.0.2.2)

Editoval lp. (28. 10. 2015 00:29:57)

Offline

#11 29. 10. 2015 21:50:53

LIT
Člen
Místo Liberec
Registrace: 8. 12. 2012
Příspěvků: 57

Re: chyba ve vzorci - VYŘEŠENO

Napadlo mě tabulku přepočítat(klávesa F9),ale to nepomohlo.Pak mě napadlo že existuje kombinace kláves Ctrl+Shift+F9(přepočítat ihned) a vzorec se přepočítal.Zkuste to u sebe.


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É
Windows 10, Libre Office, Lenovo Ideapad

Offline

#12 30. 10. 2015 11:27:15

jik
Člen
Registrace: 28. 6. 2009
Příspěvků: 43

Re: chyba ve vzorci - VYŘEŠENO

Máte pravdu, ctrl-shift-F9 to přepočítá. Pošlu soubor vývojářům.

Offline

Zápatí