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

#1 21. 10. 2013 15:58:30

VelkyBubak
Člen
Registrace: 29. 3. 2007
Příspěvků: 15

Uživatelský formát čísel - VYŘEŠENO

Rád bych si vyrobil takový formát aby, se celé číslo, zobrazovalo, necelá část zobrazila jako zlomek.
Tj. 2,5 ... 5/2, 0 ... 0, 2 ... 2, 1,75 ... 7/4, atd.


Z nápovědy jsem zjistil, cituji:
Závorky podmínek
Umožňuje určit formát čísla tak, aby byl použit jen při splnění určité podmínky. Podmínky se uzavírají do hranatých závorek [ ].
Můžete použít libovolnou kombinaci čísel a operátorů <, <=, >, >=, = a <>.
---
a zároveň zřejmě platí, cituji:
Chcete-li určit formát čísla, který přidá k číslu jiný text, je-li číslo kladné, záporné nebo rovné nule, použijte následující formát:
"plus" 0;"minus" 0;"null" 0
---
což by znamenalo, že pro svou podmínku (u kladných čísel) mohu použít jen část před prvním středníkem

a věci typu:
[0<>1][1<>2]?/?[=1]0[2]0
[=0]0[>0][<1]?/?[=1]0[>1][<2]?/?[2]0
.
.
tohle [=0]0;[<1]?/?;0 funguje, ale jen v intervalu 0 až 1 a další parametry se mi tam nedaří přidat

Editoval VelkyBubak (22. 10. 2013 20:16:49)

Offline

#2 21. 10. 2013 17:21:10

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

Re: Uživatelský formát čísel - VYŘEŠENO

Jestli tomu dobře rozumím chcete místo desetinného čísla které zadáte získat výraz se zlomkem. Pak ale nerozumím tomu, co píšete

aby, se celé číslo, zobrazovalo, necelá část zobrazila jako zlomek.

   Jako příklad uvádíte 2,5 = 5/2, nebo 1,75 = 7/4 (Tomu co je uprostřed nejak nerozumím vůbec. 0 ... 0, 2 ... 2,)
   Pokud byste chtěl formát podle té první věty, vypadalo by to takhle:
2,5 = 2+(5/10). Podobně 1,75 = 1+(3/4). Když by to mělo být tak, pak byste musel použít ležatou zlomkovou čárku aby byl zlomek poznat. Číslice by pak musely být nad a pod čarou. Tohle umí jen modul "Math".



   Pokud byste chtěl opravdu převod na zlomek celého výrazu tak jak uvádíte na příkladech, asi by šlo snadno převádět na decimální tvar - vše na desetiny, nebo na setiny, nebo na tisíciny atd. podle počtu desetinných míst. Nikoliv však na celočíselné podíly. To má několik záludností.
- Desetinné číslo by muselo být podílem čísel z oboru čísel N.
- Co s iracionálními čísly?
- Jak se zaokrouhlováním?



    Spíš mi to připadá, že byste potřeboval vyjádření vzorcem v samostatné kolonce. Nemám ani představu, že by tohle zvládl formát buňky. Představte si, že byste zadal podíl, který nemá řešení na oboru čísel N. Připadá mi to nereálné. Dokonce mne ani nenapadá proč to dělat formátem čísla a ne výpočtem ve vedlejších buňkách, pokud je to opravdu potřeba.

Editoval neutr (21. 10. 2013 17:26:18)


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 21. 10. 2013 17:59:52

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

Re: Uživatelský formát čísel - VYŘEŠENO

Pokud potřebujete najít původní členy podílu, které se projevují jen jako výsledek, vyžadovalo by to mnoho iterací a stejně byste musel jít na nějaký kompromis.



   V sešitě jsou funkce, které umí najít největšího společného dělitele - funkce GCD, nebo LCM - nejmenší společný násobek. Dále je možné použít funkci MOD (zbytek z podílu) a INT (celočíselná část podílu). Vždy ale potřebujete nejméně 2 čísla. Pokud je nemáte, muselo by se iterovat dělení podílu (nyní už tedy dělenec) stoupajícím dělitelem. Výsledek tedy nový podíl (ale původní dělenec, nebo dělitel) by se musel vyhodnocovat například jako MOD(xy/z) = 0. Prakticky by se muselo omezit na přibližný výsledek, protože nalezení správných hodnot by mohlo být třeba za 18. tým řádem, kde počítač běžně zaokrouhluje (neumí to dál spočítat).



Takovéhle iterace by i s dobrou mašinou trvaly minuty až hodiny. Vlastní iterace se dají nastavit ve vlastnostech sešitu, ale jsou omezeny. Tohle by bylo na makro. Pokud tedy nejsou výrazy s desetinným číslem výsledkem podílu malých celých čísel, nemá to principiální řešení. Tyto úlohy spadají pod teorii čísel a to je většinou špek. Představte si, že zadáte 3,14... tedy konstantu "Pí", nebo 2.71... základ přirozených logaritmů "e".


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

#4 21. 10. 2013 22:14:26

VelkyBubak
Člen
Registrace: 29. 3. 2007
Příspěvků: 15

Re: Uživatelský formát čísel - VYŘEŠENO

Aha. Původně jsem doufal že to půjde přez formát čísel, protože již teď tam jdou nastavit zlomky, jen se mi ten formát tak úplně nelíbil (např. proto, že v intervalu 0-1 to nulu sice nemusí zobrazovat, ale s formátováním čísla to ani nehne - pořád se tváří jako by tam byla).


Takže jsem si vymyslel, jak by se mi to líbilo. Představoval jsem si, že by se celá čísla zobrazovala jako celá a zbytek, jako zlomky.


Pravdou je, že jsem přitom nepomyslil na nekonečná čísla. Ale i zmiňované 'Pí' by mělo jít vyjádřit zlomkem (o = 2'Pí'r ... 'Pí'= o/2r). Navíc, jak jsem již zmínil zlomky tu částečně nastavit jdou (# ?/? nebo # ??/??).


Pokud to nejde definicí formátu, pak mi samozřejmě nezbyde nic lepšího, než zkusit nějaký, byť možná né úplně přesný vzoreček.

Editoval VelkyBubak (21. 10. 2013 22:21:45)

Offline

#5 22. 10. 2013 10:15:38

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

Re: Uživatelský formát čísel - VYŘEŠENO

Zkus si požadavek znovu přečíst a pak popiš co opravdu chceš.

K těm podmínkám: Nezadává se interval a vyhodnocují se postupně.
Pro čísla jsou 3 pole, 4. je vždy pro text.
V podmínce se porovnává obsah buňky s hodnotou. Pro pole je jen jedna podmínka (na začátku výrazu)

[>100] znamená "Když je hodnota v buňce > 100 použij následující formát"

Když podmínka splněná není, vyhodnocuje další pole.
Ve 3. poli podmínka není.

U zlomků je v nápovědě drobná nepřesnost. Pokud použiješ např.: # ??????/?????
je ve jmenovateli vždy 5 znaků, pokud je jich potřeba méně, doplní se mezerami. Zhoršuje to čitelnost výrazu.
Teprve formát  # ####?/####? funguje jak se čeká.

Offline

#6 22. 10. 2013 17:28:56

VelkyBubak
Člen
Registrace: 29. 3. 2007
Příspěvků: 15

Re: Uživatelský formát čísel - VYŘEŠENO

lp. napsal(a)

Zkus si požadavek znovu přečíst a pak popiš co opravdu chceš.

Porovnání formátování - zarovnáno do prava
calc.png

Porovnání formátování - zarovnáno do leva
calc2.png
zjištuji že opravdu nejjednodušší bude vyřešit to vzorcem v tabulce - což ale znamená použít další sloupec.

... chtěl jsem vpodstatě to co je ve sloupci C s tím rozdílem že v řádcích kde je x/1 by bylo jen x a zarovnané by to bylo tak jako teď.
Popř. by mi stačilo i to co je v ve sloupci B, ale zarovnané stejně jako v D

Offline

#7 22. 10. 2013 17:51:14

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

Re: Uživatelský formát čísel - VYŘEŠENO

Myslíš něco takového?

=TRIM(TEXT(A1;"# #/#"))

Offline

#8 22. 10. 2013 18:08:39

VelkyBubak
Člen
Registrace: 29. 3. 2007
Příspěvků: 15

Re: Uživatelský formát čísel - VYŘEŠENO

Ano, přesně takto se to mělo chovat. Je mi líto, že to nejde udělat přímo formátováním čísla, ale i tak děkuji.

Offline

Zápatí