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

#1 20. 5. 2010 16:57:40

tombil
Člen
Registrace: 23. 9. 2005
Příspěvků: 21

Převod buňky na text

Dobrý den,

při tisku nálepek pomocí base, z dat v sešitu calcu jsem
narazil na jeden problém. V jednom sloupci mám různé formáty
pro čísla - časy, des. čísla, celá čísla.

Čas ve tvaru 03:15,45 (form. kód MM:SS,00) se do base převede
chybně, bez ohledu na formátování, jako 0.

Chtěl jsem to tedy obejít, a převést zformátovaný čas už v calcu
na text do pomocného sloupce. Nemůžu ale na to najít žádnou funci,
která by vrátila textovou podobu buňky.

Zkoušel jsem i např. [= "" & A21] ale vždy to vrací
na text převedené desetinné číslo (vnitřní reprezentaci času).

Nemá prosím někdo nějaký nápad?

Díky, pěkný den
             Tom B.

Offline

#2 20. 5. 2010 18:45:35

jiji1
Člen
Registrace: 25. 8. 2009
Příspěvků: 13

Re: Převod buňky na text

za predpokladu, ze bunka a1 obsahueje nejake datum, treba: =now()
=CONCATENATE(MINUTE(A1);":";SECOND(A1))
a nebo lepe zformatovano aby vzdy minuty i vteriny byly na 2 mista
=CONCATENATE(TEXT(MINUTE(A1);"00");":";TEXT(SECOND(A1);"00"))
priznam se ze na ty desetiny vterin jsem funkci nenasel, ale mel by's to byt schopen si je spocitat pomoci funkci timevalue() pripadne datevalue() + hour(), minute(), second() atd.

Offline

#3 20. 5. 2010 19:47:29

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

Re: Převod buňky na text

=TEXT(a1; "mm:ss,00")

Offline

#4 20. 5. 2010 20:48:47

tombil
Člen
Registrace: 23. 9. 2005
Příspěvků: 21

Re: Převod buňky na text

Děkuji za snahu, ale uvedené funkce zatím příliš neřeší mé zadání protože předpokládají jen jeden uvedený formát času. Tímto způsobem bych to nechtěl řešit protože bych musel nějak testovat typ a formátování čísla a podle toho formátovat na řetězec. Fakticky byvh musel znovu naprogramovat to co OOo už beztak dělá automaticky.

Stále doufám že existuje nějaká funkce která přímo vrátí textovou podobu buňky. V objektu
buňky v basicu to existuje: .value např. vrací číselnou hodnotu, .string vrací totéž jako text.

Offline

#5 20. 5. 2010 22:55:20

Ondra.kl
Člen
Registrace: 30. 9. 2008
Příspěvků: 933

Re: Převod buňky na text

=CONCATENATE(TEXT(HOUR(B9);"00");":";TEXT(MINUTE(B9);"00");":";TEXT(SECOND(B9);"00"))

takto nějak?

Offline

#6 20. 5. 2010 23:12:20

jiji1
Člen
Registrace: 25. 8. 2009
Příspěvků: 13

Re: Převod buňky na text

=TEXT(a1; "mm:ss,00")   aha, tak to jsem neznal :-(

rikate ze v jednom sloupci jsou cisla i datumy. Vzhledem k tomu, ze datum je interne reprezentovano jako cislo, tak jedinej rozlisovaci znak je ten format bunky (pokud to neni jeste v jinem sloupci). Takze ja nevidim jinou cestu nez jit pres informacni funkce (isnumber() type() cell() a spol.)

Offline

#7 21. 5. 2010 15:41:11

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Převod buňky na text

Nevím, jak by to šlo univerzálně jinak, než vlastní funkcí:
http://ooo.e-hanus.cz/funkce_TOSTRING.01.ods

Offline

#8 21. 5. 2010 20:07:08

tombil
Člen
Registrace: 23. 9. 2005
Příspěvků: 21

Re: Převod buňky na text

hanus napsal(a)

Nevím, jak by to šlo univerzálně jinak, než vlastní funkcí:
http://ooo.e-hanus.cz/funkce_TOSTRING.01.ods

Díky,
to jsem považoval za poslední rešení, ale bohužel jsem zjistil, že base nebere výsledky z vlastních funkcí (všude dá nuly).

Prozatím jsem to vyřešil, ne moc systémově ale momentálně funkčně takto:
=IF(CELL("format";E10)="G";TEXT(E10;"mm:ss,00");"" & E10)

Offline

#9 22. 5. 2010 17:42:42

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Převod buňky na text

S Base nepracuju, ale nějak se mi takové chování nezdá - nebude to spíš tím, že číslo je v neznámém formátu, např. místo desetinné tečky je desetinná čárka apod.? Možná je to spíš dotaz do Base fóra.

Offline

Zápatí