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

#1 23. 9. 2015 16:20:21

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

import datumu z csv - vyřešeno

Dobrý den. Mám v csv takovýto formát datumu a času: 170720150958 existuje v LO nějaká funkce která by to uměla jednoduše rozklíčovat? (Umím to udělat jen pomocí date(value(mid(x,y);value(mid(v,w) atd + time(obdobně) což je tedy vzorec k popukání. Nehledě na to že předcházet musí sloupec text(A1;"000000000000") abych dostal vždy stejný počet znaků (některá data jsou v tomto tvaru 20720150713 (například) tedy o jeden znak méně. Zkrátka jestli takhle pitomě zadané datum nemůže calc nějak automaticky přečíst.

Editoval ludviktrnka (24. 9. 2015 09:30:31)


LibreOffice 5.2.2.2

Offline

#2 23. 9. 2015 18:38:01

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

Re: import datumu z csv - vyřešeno

Vypadá to jako upravená funkce NOW() - příklad :
170720150958 = 17.07.2015 09:59
20720150713  = 2.07.2015 07:13
     Pokud je to tak, pak ten někdo vytváří něco jako GUID - respektive ID, index a podobně. Jinak by to byly roky těsně po válce, nebo v budoucnu - asi za 20 let :-)


     To už si asi poradíte Buď 11, nebo 12 čísel a podle toho vzorcem doplnit tečky, mezeru a dvojtečku. Měla by to pro Vás být hračka :-)

Editoval neutr (23. 9. 2015 18:43:46)


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 23. 9. 2015 19:21:45

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

Re: import datumu z csv - vyřešeno

Aha, máte právdu že Date a Time se dá vynechat, ale pořád mi tu vychází vzorec =VALUE(LEFT(T2;2)&"."&MID(T2;3;2)&"."&MID(T2;5;4)&" "&MID(T2;9;2)&":"&RIGHT(T2;2)) kde v T2=TEXT(D2;"000000000000")
Ale už je to přeci jen krapet elegantnější, zmizelo opakování funkce value.

Zkoušel jsem něco jako Text(D2;"00.00.0000 00:00) ale to moc nefunguje vychází jakýsi patvar.

To datum je výstupem databáze firmy CCS


LibreOffice 5.2.2.2

Offline

#4 23. 9. 2015 20:18:53

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

Re: import datumu z csv - vyřešeno

Příklad : číslo je v A1 :
Rozdělte to podle IF(Len(A1)= 11;Konstrukce1;Konstrukce2)
Konstrukce1 - DATE(;;) rozložená na DAY(Left(A1;1) - MONTH(MID(A1;2;2)) - YEAR(MID(A1;4;4)) + popřípadě - HOUR(MID(A1;8;2)) - MINUTE(RIGHT(A1;2))
Konstrukce2 - DATE(;;) rozložená na DAY(Left(A1;2) - MONTH(MID(A1;3;2)) - YEAR(MID(A1;5;4)) + popřípadě - HOUR(MID(A1;9;2)) - MINUTE(RIGHT(A1;2)).
     Takže bez času v A1[20720150713] =DATE(MID(A1;4;4);MID(A1;2;2);LEFT(A1;1)) - výsledek 02.07.2015


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 23. 9. 2015 21:01:49

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

Re: import datumu z csv - vyřešeno

Zkuste

=DATEVALUE(TEXT(INT(A1/10000);"00\.00\.0000"))+TIMEVALUE(TEXT(RIGHT(A1;4);"00\:00"))

(stejně je to nehezké)

Offline

#6 23. 9. 2015 21:14:21

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

Re: import datumu z csv - vyřešeno

to lp - pěkný - úplně jednoduché to není ale je to jeden vzorec na oba případy (dlouhé i krátké datum), tak to je fajn. Ta zpětná lomítka v zápisu formátu jsem zkoušel, ale bez úspěchu a do tohoto výsledku bych sám asi nedošel. Myslím že tohle řešení vyhrálo. Díky

Aha tak ještě malá změna. Výstupem funkce right je text, ale funkce text očekává číslo, takže je potřeba druhou část upravit takto: +TIMEVALUE(TEXT(VALUE(RIGHT(D17;4));"00\:00"))

Editoval ludviktrnka (23. 9. 2015 21:27:40)


LibreOffice 5.2.2.2

Offline

#7 23. 9. 2015 21:35:03

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

Re: import datumu z csv - vyřešeno

To TIMEVALUE se dá ještě nahradit zkrátit výrazem

+DOLLARDE(MOD(A2;10000)/100;60)/24

Ale kdo to pak má luštit.

ps. Původní vzorec v aoo funguje. Pokud v lo ne, tak ještě můžete zkusit konverzi pomocí 1*right(...
- je to kratší (v lo jsem netestoval)

Editoval lp. (23. 9. 2015 21:40:31)

Offline

#8 24. 9. 2015 09:29:32

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

Re: import datumu z csv - vyřešeno

Děkuji. Funkci Dollarde se raději ani nesnažím pochopit. Konverze 1*right() nefunguje. V LO je nastavení umožňující text ve výpočtu nahrazovat vždy nulou. Já mám toto nasatvení aktivované neboť mám z lenosti v některých sešitech sumy i přes buňky s textem a bez tohoto nastavení to vrací chybu. Tzn. text je vždy nula dokud neprojde funkcí Value(). Vím, že AOO je v tomhle lepší, text vyhodnocuje "inteligentně", ale má zas jiné zásadní mouchy a to je důvod proč jsem přešel na LO. Nicméně téma považuji za naplněné, nic zásadního už asi nepadne. Děkuji všem za rady.


LibreOffice 5.2.2.2

Offline

Zápatí