Převod data

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

V.Hrzan
nováček
Příspěvky: 9
Registrován: leden 12
Pohlaví: Nespecifikováno
Stav:
Offline

Převod data

Příspěvekod V.Hrzan » 25 črc 2012 08:39

Hezké ráno. Už se pár hodin trápím s převodem dat, které jsem importoval z txt souboru. Ve sloupci A mám datumy ve formátu m/dd/rrrr h:mm:ss PM(AM) a potřebuji datum převést do formátu dd:mm:rrrr hh:mm:ss se zohlednením AM a PM, tjst aby se pří PM přičetlo oněch 12hodin. A aby toho nebylo málo, tak bych ještě potřeboval převést číslo ve formátu 9.600000E-2 na 9,600000E-2 eventuelně na 0,096. Zkoušel jsem to přes formát buňky, pokoušel jsem se o makro a o převod pomocí nejrůznějších funkcí. Bohužel bezúspěšně. Máte někdo ideu jak na to?

Reklama
d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: Převod data

Příspěvekod d1amond » 25 črc 2012 09:20

DT.xlsm
(9.53 KiB) Staženo 25 x
A ty chceš z toho času získat 12h formát nebo 24h formát? To jde zcela normálně přes formát buňky.
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Převod data

Příspěvekod Azuzula » 25 črc 2012 09:25

A z desetinné tečky na desetinnou čárku stačí funkce "Najít a nahradit" zkratka je ctrl+f
Naposledy upravil(a) Azuzula dne 25 črc 2012 11:54, celkem upraveno 1 x.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

V.Hrzan
nováček
Příspěvky: 9
Registrován: leden 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Převod data

Příspěvekod V.Hrzan » 25 črc 2012 11:41

d1amond píše:
DT.xlsm
A ty chceš z toho času získat 12h formát nebo 24h formát? To jde zcela normálně přes formát buňky.

Tohle jsem taky zkousel, ale ja mam datum ve formatu: 6/20/2012 7:13:14 PM ty jsi to upravoval pro 25.7.12 11:55:58 PM. Dělaj mi tam bordel ty lomítka :crazy:

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Převod data

Příspěvekod Azuzula » 25 črc 2012 11:53

i na tohle jde použít funkce Najít a nahradit jak už jsem psala předtím ;) lomítko nahradíte za tečku
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

V.Hrzan
nováček
Příspěvky: 9
Registrován: leden 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Převod data

Příspěvekod V.Hrzan » 01 srp 2012 08:02

tím se sice zbavím lomítka, ale datum stale zustane v neprevoditelnem formatu. stále mám prohozené dny a měsíce.

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Převod data

Příspěvekod Azuzula » 01 srp 2012 08:33

V tom případě bych použila třeba vzorce na rozložení jednotlivých částí data, ale na to jsou potřeba 4 různé vzorce a nebo můžu napsat funkci na převod.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Převod data

Příspěvekod cmuch » 01 srp 2012 08:53

Tady by byl jeden vzorec. Ex2003.
Předpoklad je ten, že v buňce musí být datum i s časem (v jakémkoli formátu).

Kód: Vybrat vše

=CONCATENATE((ČÁST(A2;(HLEDAT(".";A2;1))+1;((HLEDAT(".";A2;(HLEDAT(".";A2;1))+1))-(HLEDAT(".";A2;1)))-1));".";(ČÁST(A2;1;(HLEDAT(".";A2;1))-1));".";(ZPRAVA(A2;(DÉLKA(A2))-(HLEDAT(".";A2;(HLEDAT(".";A2;1))+1)))))

Platí pro datum v A2
Naposledy upravil(a) cmuch dne 01 srp 2012 19:20, celkem upraveno 2 x.

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Převod data

Příspěvekod Azuzula » 01 srp 2012 09:03

Zakomponovat funkci hledat mě nenapadlo, ale nevím kde se vzala ta funkce ZPRAVA, mě to píše "Tato funkce není platná."

--- Doplnění předchozího příspěvku (01 Srp 2012 09:28) ---

Napsala jsem funkci na převod toho data s prohozením dnů a měsíce. Funguje snad na všechny formáty. Počítá i s časem ve všech formátech jak 12 hodinový tak i 24 hodinový.

Kód: Vybrat vše

Function PREVED_DATUM(vstup As String, oddelovac As String) As Date
'otočí v datumu den s měsícem z data "mm/dd/rrrr" i "mm/dd/rrrr hh:mm:ss" vč. neúplného zápisu času nebo v 12h formátu
If Mid(vstup, 2, 1) = oddelovac And Mid(vstup, 5, 1) = oddelovac Then
    If Mid(vstup, 8, 1) = " " Then
        PREVED_DATUM = Mid(vstup, 3, 2) & "." & Mid(vstup, 1, 1) & "." & Mid(vstup, 6, 2) & " " & Mid(vstup, 9, 8)
    Else
        PREVED_DATUM = Mid(vstup, 3, 2) & "." & Mid(vstup, 1, 1) & "." & Mid(vstup, 6, 4) & " " & Mid(vstup, 11, 8)
    End If
ElseIf Mid(vstup, 3, 1) = oddelovac And Mid(vstup, 5, 1) = oddelovac Then
    If Mid(vstup, 8, 1) = " " Then
        PREVED_DATUM = Mid(vstup, 4, 1) & "." & Mid(vstup, 1, 2) & "." & Mid(vstup, 6, 2) & " " & Mid(vstup, 9, 8)
    Else
        PREVED_DATUM = Mid(vstup, 4, 1) & "." & Mid(vstup, 1, 2) & "." & Mid(vstup, 6, 4) & " " & Mid(vstup, 11, 8)
    End If
ElseIf Mid(vstup, 3, 1) = oddelovac And Mid(vstup, 6, 1) = oddelovac Then
    If Mid(vstup, 9, 1) = " " Then
        PREVED_DATUM = Mid(vstup, 4, 2) & "." & Mid(vstup, 1, 2) & "." & Mid(vstup, 7, 2) & " " & Mid(vstup, 10, 8)
    Else
        PREVED_DATUM = Mid(vstup, 4, 2) & "." & Mid(vstup, 1, 2) & "." & Mid(vstup, 7, 4) & " " & Mid(vstup, 12, 8)
    End If
ElseIf Mid(vstup, 2, 1) = oddelovac And Mid(vstup, 4, 1) = oddelovac Then
    If Mid(vstup, 7, 1) = " " Then
        PREVED_DATUM = Mid(vstup, 3, 1) & "." & Mid(vstup, 1, 1) & "." & Mid(vstup, 5, 2) & " " & Mid(vstup, 8, 8)
    Else
        PREVED_DATUM = Mid(vstup, 3, 1) & "." & Mid(vstup, 1, 1) & "." & Mid(vstup, 5, 4) & " " & Mid(vstup, 10, 8)
    End If
End If
End Function

Opravená funkce, bere jakýkoliv formát data od mm.dd.rrrr po m.d.rr vč. času v jakémkoliv formátu.

Vzorec pak bude vypadat např.:

Kód: Vybrat vše

=PREVED_DATUM(A1;"/")

pro datum v buňce A1 s oddělovačem "/"
Naposledy upravil(a) Azuzula dne 01 srp 2012 11:35, celkem upraveno 2 x.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Převod data

Příspěvekod cmuch » 01 srp 2012 11:08

Zakomponovat funkci hledat mě nenapadlo, ale nevím kde se vzala ta funkce ZPRAVA, mě to píše "Tato funkce není platná."

Bylo to vytvořeno v Ex2003. Třeba v Ex2007 a 2010 je to jinak.

A u té fce musí být zaručeno dd.mm.rrrr hh:mm , pokud nekdo bude zapisovat datum jen d.m.rrrr tak to nebude fungovat.
Ta má fce to brala vše. Zkusím se na to podívat doma na Ex2010.

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Převod data

Příspěvekod Azuzula » 01 srp 2012 11:20

Právě že jsem tam ošetřila všechny 4 možnosti kombinace dnů a měsíců. Ale když bude rok v dvoučíselném formátu tak to nebude fungovat, ještě to doladím.

--- Doplnění předchozího příspěvku (01 Srp 2012 11:33) ---

Opravila jsem tu původní funkci v předchozím příspěvku
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Převod data

Příspěvekod cmuch » 01 srp 2012 13:16

Tak jsem to zkoušel v Ex2007 a jde to tam taky.

Kód: Vybrat vše

=CONCATENATE((ČÁST(A2;(HLEDAT(".";A2;1))+1;((HLEDAT(".";A2;(HLEDAT(".";A2;1))+1))-(HLEDAT(".";A2;1)))-1));".";(ČÁST(A2;1;(HLEDAT(".";A2;1))-1));".";(ZPRAVA(A2;(DÉLKA(A2))-(HLEDAT(".";A2;(HLEDAT(".";A2;1))+1)))))


--- Doplnění předchozího příspěvku (01 Srp 2012 19:14) ---

Tak ex2010 nezná ZPRAVA ale zná VPRAVO :D

Kód: Vybrat vše

=CONCATENATE((ČÁST(A2;(HLEDAT(".";A2;1))+1;((HLEDAT(".";A2;(HLEDAT(".";A2;1))+1))-(HLEDAT(".";A2;1)))-1));".";(ČÁST(A2;1;(HLEDAT(".";A2;1))-1));".";(VPRAVO(A2;(DÉLKA(A2))-(HLEDAT(".";A2;(HLEDAT(".";A2;1))+1)))))


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Firemní data a bilocker
    od p3v4x » 12 lis 2024 19:00 » v Vše ostatní (hw)
    3
    2699
    od petr22 Zobrazit poslední příspěvek
    12 lis 2024 22:05
  • Jak permanentně smazat data z USB disku?
    od Patrik92 » 16 pro 2024 18:59 » v Vše ostatní (bezp)
    16
    4820
    od Minapark Zobrazit poslední příspěvek
    17 pro 2024 20:54

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů