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

#1 22. 7. 2015 09:53:26

Frantaxy
Člen
Registrace: 24. 3. 2015
Příspěvků: 7

Chyba Libre calc? VYŘEŠENÝ

Dobrý den
Mám problém když vložim vzoreček tak se přečísluje automaticky z A1 na a10.

=LEFT(A1,MAX(IFERROR(FIND(CHAR(10),A1,1)0),IFERROR(FIND(CHAR(32),A1,1)0)))

(CHAR(10),A1,1) v tomto místě seto děje
(CHAR(32),A1,1)

Jeto chyba systému calc?dějeseto i vlinuxech.
                                                Frantaxy

Editoval Frantaxy (27. 7. 2015 10:04:44)

Offline

#2 22. 7. 2015 13:48:15

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

Re: Chyba Libre calc? VYŘEŠENÝ

Mám pocit, že vzorce jsou špatně. Nevidím tam středníky. Čárky by měly vyhazovat chyby. Jinak FIND hledá v řetězci (v buňce A1) zalomení řádku (CHAR(10). Hledání je od první pozice v řetězci. Myslím si, že to hledá správně ale vypíše číslo pozice CHARu(10).
      Stejně ale jde o chybnou syntaxi - to by mělo vždy vyhodit chybu ve vzorci. Ani z Basicu by to v téhle formě nechodilo. Pošlete raději vzorek vadných dat.


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 22. 7. 2015 15:35:01

strepon
Člen
Registrace: 6. 1. 2011
Příspěvků: 152

Re: Chyba Libre calc? VYŘEŠENÝ

Výchozí oddělovače argumentů jsou v Calcu skutečně středníky, použití středníků místo čárek by problém mělo řešit.
Nicméně ani s chybně zadanými oddělovači není přípustné, aby se vstup samovolně měnil. Chyba je už delší dobu nahlášena (viz bug 69479).

Offline

#4 23. 7. 2015 09:38:50

Frantaxy
Člen
Registrace: 24. 3. 2015
Příspěvků: 7

Re: Chyba Libre calc? VYŘEŠENÝ

Dobrý den
Skoušel jsem to ve win předělat na středník.
Předtím to házelo chyba 508 a nyní chyba 509.

V mynulosti to chodilo ale jak jsem musel přeinstalovat win a libre tak to už nefunguje.
Vzorec je v B1 a z A1 toma zkopírovat čísla na začátku textu.Jinak jsem nepřišel na vhodnější dělení textu.Problém je že tam jsou čísla 1 až 5.když to dělím pevným odělovačem tak to veme aj text.když to dělím mezerou tak to rozhodí na více sloupců.
V exelu 2013 to bylo v pohodě.V Libre calc Netuším jak to řešit?
                                                                Předem děkuji za radu Frantaxy

Offline

#5 23. 7. 2015 14:13:48

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

Re: Chyba Libre calc? VYŘEŠENÝ

Nejenom nahradit čárky za středníky ale i doplnit chybějící oddělovače.

Funkce Find znak CHAR(10) nenajde! (Testoval jsem LO 4.4.0.3.).

Zkus třeba

=LEFT(A7;IFERROR(FIND(CHAR(32);SUBSTITUTE(A7;CHAR(10);" ");1);0))

Odvolávka na fungování v Excelu je zbytečná. LO se řada funkcí chová jinak než odpovídající funkce v Excelu i v AOO. Občas chování nerespektuje ani OASIS.

Offline

#6 23. 7. 2015 15:51:33

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

Re: Chyba Libre calc? VYŘEŠENÝ

Ono je to celé nějaké podivné :
     Základem je vzorec LEFT(Buňka, číslo) - Tedy syntaxe =LEFT(;)
     Jak je potom možné aby místo čísla byl výraz

MAX(ISERROR(FIND(CHAR(10);A1;1);0);IFERROR(FIND(CHAR(32);A1;1)0))

konkrétně
=LEFT(A1;MAX(IFERROR(FIND(CHAR(10);A1;1)0);IFERROR(FIND(CHAR(32);A1;1)0)))
Když si pustíte uparvený výraz pro číslo najdete další nesoulady a není jen jeden:
=MAX(IFERROR(FIND(CHAR(10);A3;1);0);IFERROR(FIND(CHAR(32);A3;1)0))
- IFERROR je nejspíš chyba měl by zde být explicitní výraz chyby a to asi Char(10) není.
- Existuje funkce relativně podobná ISERROR která detekuje chybu a umí se vyhnout chybovému hlášení.
    Není ale zřejmé co se má testovat a udělat. Má to být odstranění zalomení? Například vzorec =FIND(CHAR(10);A1;1) vrátí pozici znaku zalomení. To se testuje :
-------------------------------------------------------
A - na existenci hledaných znaků. Když si zadáte samostatně vzorec =ISERROR(FIND(CHAR(10);A1;1)) tak se vám vrátí PRAVDA/NEPRAVDA.
    Potom se to dá řešit například testem =IF(ISERROR(FIND(CHAR(10);A1;1));"Zde zalomení není";"Zde je zalomení"), nebo také =IF(ISERROR(FIND(CHAR(10);A1;1));"Není zde zalomení (nebo původní text 'A1')";FIND(CHAR(10);A1;1))
-------------------------------------------------------
B - počet a pozici hledaných znaků. Jde o to jestli chceme například odřádkovat. Pak před (nebo za) hledaný znak vložíme CHAR(10). To můžeme udělat například pomocí SUBSTITUTE, ale jde to i jinak.
-------------------------------------------------------
C - Konkrétně asi Váš případ - pokud chcete odstaranit všechna zalomení. K tomu stačí =SUBSTITUTE(A5;CHAR(10);" "). Je to mnohem jednodušší případ vzorce. Místo zalomení se vloží mezera tedy " " nebo "" tedy bez mezery - zmizí jen zalomení. Tedy žádný test a hned výsledek.
-------------------------------------------------------
     Takže jde spíš o to, co má ten vzorec udělat.

Editoval neutr (23. 7. 2015 15:56:14)


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 23. 7. 2015 17:32:13

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

Re: Chyba Libre calc? VYŘEŠENÝ

lp. napsal(a)

Funkce Find znak CHAR(10) nenajde!

Tak to neplatí, chyba je jinde:

Pokud jsou v A1 oba oddělovače, tak výraz

MAX(IFERROR(FIND(...);0);IFERROR(FIND(...);0))

vrátí druhý (chyba). Oprava

=LEFT(A3;MIN(IFERROR(FIND(CHAR(10);A1);10000);IFERROR(FIND(CHAR(32);A1);10000)))

pro aspoň jeden oddělovač funguje. Pokud oddělovač není žádný, tak to vrátí buňku A1. (Někdy chyba)

Místo složitého rozhodování je asi nejsnažší dříve uvedené:

=LEFT(A1;IFERROR(FIND(" ";SUBSTITUTE(A1;CHAR(10);" "));0))

nebo složitější výraz

=LEFT(A1;IFERROR(FIND(" ";SUBSTITUTE(A1;CHAR(10);" "));IF(ISNUMBER(A1);LEN(A1);0)))

řeší variantu buňky bez oddělovačů.

Editoval lp. (23. 7. 2015 17:35:52)

Offline

#8 25. 7. 2015 03:52:14

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

Re: Chyba Libre calc? VYŘEŠENÝ

Tak Frantaxy zatím neupřesnil co to má dělat. Možná se strefím.
      V buňkách sloupce A jsou zřejmě nějaké relativně dlouhé texty, které se mají zkrátit buď na 1. zalomení, nebo na 1. mezeru.
      To co mi tam už nesedí je výraz nula na konci. Pokud není v textu zalomení, nebo mezera tak funkce left nevrátí nic? Není logické že by to mělo vrátit celý text z buňky A1 nebo například nějakou hlášku?


Viděl bych to na základ se vzorcem :
=IF(LEN(A1)>LIMITA;Podmínky při ANO; Podmínky při NE)
LIMITA - délka textu. Například 15 znaků.
ANO - Zde se musí větvit funkcí IF, true a(nebo) OR.
     Konkrétně například :
          IF(OR(;;;;)=1;ANO;NE)
          IF(IF;ANO;NE);ANO;NE)
NE - Zde by mělo být něco co se udělá, když je text kratší nežli 15 znaků. Například se vrátí obsah buňky A.
Konkrétně : =IF(LEN(A1)>15;IF(IF;ANO;NE);ANO;NE);A1)
-------------------------------------------------------
Možných variant je docela hodně. Například bude potřebné otestovat zda text obsahuje zalomení a mezery. Potom základní podmínka bude s AND. Když je text s mezerou a má i zalomení, pak je třeba otestovat co je dříve v řetězci. Ale problém bude když někdo sekne mezeru na začátek. Takže můžeme předpokládat docela dost podmínek.


     Myslím že postačí jednoduchý dotaz : IF(LEN(A1)>15;LEFT(SUBSTITUTE(A5;CHAR(10);"");15);SUBSTITUTE(A5;CHAR(10);""))
     Pokud je text delší neli 15 znaků, vrátí se prvních 15 znaků z textu zbaveného zalomení. Pokud je text kratší nežli 15 znaků vrátí se celý text a bez zalomení. Mezeru neřeším - ta by vadit nemusela (to je ten CHAR(32) z původního vzorce). Ale jde skutečně o to, co se má s výsledkem dělat.

Editoval neutr (25. 7. 2015 03:57:28)


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

#9 25. 7. 2015 10:35:52

Frantaxy
Člen
Registrace: 24. 3. 2015
Příspěvků: 7

Re: Chyba Libre calc? VYŘEŠENÝ

Dobrý den
Omlouvám se včera jsem testoval pc na virus.
nic jsem nenašel.Chování calcu je porat stejné až nato že Váš vzoreček funguje ale funguje i ten můj.
Včera to nefungovalo.
Calc se chová podivně,když vzoreček skopíruju do sloupce pod sebou tak v buňkách je ale nic se nezobrazí žadnej výsledek.Pak jsem skoušel to převést na text a vzorečky uplně zmyzeli buńky byli prázdné.Nikdy se calc takhle nechoval je možné že se mě něco zakouslo do systému calcu?
S calcem nemám moc skušeností.Ještě další možnost smazat všechny makra možná že některé to narušuje?
Že by calc byl až tak nestabilní?
                                 Moc Vám děkuji za váš čas Frantaxy

Offline

#10 25. 7. 2015 11:30:47

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

Re: Chyba Libre calc? VYŘEŠENÝ

To asi ne. Nejspíš máte nastavení buněk na skrýt vzorce a list zamčený, nebo máte ve výstupu jako výsledek textu "" (samotné uvozovky). Ty tohle dělají.
     Ty Vaše originál vzorce z prvního příspěvku by neměly chodit vůbec - výsledkem by měla být nějaká chyba.


     Ještě pro upřesnění co používáte? Calc LibreOffice, nebo Apache OpenOffice? Neotevíráte nějaký exotický formát? Jakou má Váš soubor příponu? (Měla by to být koncovka .odt, nebo .xls.) Na jakém operačním systému to chodí? Jestli to bere čárky místo středníků tak by to mělo být něco neobvyklého.


     Já bych doporučil sem postnout vzorek sešitu.

PS: - Makra by to mohla dělat. Například zamykat sešit kde se pak skrývají vzorce a výsledky .... + bůh ví co ještě. Já to dělám poměrně běžně.

Editoval neutr (25. 7. 2015 11:34:21)


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

#11 26. 7. 2015 08:28:14

Frantaxy
Člen
Registrace: 24. 3. 2015
Příspěvků: 7

Re: Chyba Libre calc? VYŘEŠENÝ

Dobrý den
Mám Win 10 Technical Preview build.9926.

LibreOffice 4.4.4.3 musel jsem přejít na 4.4.3.
Přípona je ods,jeto standartní přípona?nebo se má použít nějaká jiná?

Skoušel jste ty moje vzorce v Libre?
Já jsem si vytvořil novej sešit a tam to už všechno funguje.

V makrách to nebylo odstranil jsem všechny makra a dělaloto pořát.

libre nemá možnost defaultního nastavení?pokud někde něco špatně překliknu.
Už mám také sklerozu a těško se mě orientuje v tom nastavení,jetam toho moc.

Pro uživatele jeto dost složité což odrazuje nové zájemce o libre.
V Excelu jeto mnohem jednoduší.
                                  Mom a moc děkuji za pomoc  Frantaxy

Offline

#12 26. 7. 2015 09:49:28

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

Re: Chyba Libre calc? VYŘEŠENÝ

Jo máte pravdu já jsem se upsal v té koncovce ".odt" je textový dokument. Správně je to ".ods". Ten další text je pro mne poněkud nepochopitelný.
     Když to dáte do nového sešitu Calc (otevřít nový) tak by tam žádná makra být neměla. To se může stát jenom když sešit s makry zkopírujete, nebo když byste měl nastavenu jako výchozí jinou šablonu nežli tu implicitní (přednastavenou "z fabriky").


     Takže zadejte volu "Soubor" > "Nový" > "Sešit". Měl by se jmenovat "Bez názvu 1", nebo větší číslo. Do tohoto sešitu vložte Vaše data která potřebujete upravit (jenom texty do buněk) a k tomu vzorce.
     Ty se dají většinou okamžitě použít po zkopírování z této stránky (já to osobně většinou kopírujijako odzkoušené, ale někdy píšu z hlavy - takže by tam mohla být někdy chyba).
     Teprve potom to uložte pod nějakým vhodným názvem (tak aby se nepřepisoval nějaký existující soubor).
     Tohle otestujte. Neměly by se opakovat chyby z nějaké Vaší chybné manipulace. Když tak si musíte pamatovat co jste udělal, nebo si navolte možnost "Úpravy" > "zaznamenávat změny".


     Také můžete napsat vzorová data pro buňky které chcete rozebírat (stačí jich několik - ale typických). Dál napište ve které buňce mají být vzorce a co opravdu mají udělat. Popište slovně co se má stát. Nejlépe pomocí bodů ad 1),...ad 2),...........
     Postavím Vám vzor.


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 27. 7. 2015 10:01:12

Frantaxy
Člen
Registrace: 24. 3. 2015
Příspěvků: 7

Re: Chyba Libre calc? VYŘEŠENÝ

Dobrý den
když otevřu nový sešit,tak tam mám svoje moduli včetně menu.
Naposled když jsem odinstaloval Libre,restartnul pc a znova nainstaloval libre,tak jsem tam měl svoje moduli a také menu.
To bude asi tím že při odinstalovaní to odstraní jenom z program files.
Moduli jso jinde.

Cesta k uložení modulu,dialog.xlb načte moduli
C:\Documents and Settings\název počítače\AppData\Roaming\LibreOffice\4\user\basic\Standard

Je třeba inportovat jako knihovnu z libre.Jednou to šlo a podruhé zas ne tak je třeba nakopírovat dle cesty.

Cesta k souboru Menu.v souboru.xml
C:\Users\název počítače\AppData\Roaming\LibreOffice\4\user\config\soffice.cfg\modules\scalc\menubar

píšu to proto že mě to dalo hodně práce to najít a nikde jsem se nedočet kde to má bít umístěno.
aspoň to pomůže ostatním v orientaci.

Projistotu si dělám zálohu už mockrát se stalo že moduli zmizeli.

Jinak už všechno funguje
                          Moc Vám děkuji Frantaxy

Offline

Zápatí