Forfatter |
Emne Søg Emne funktioner
|
Spotteck
Forum Begynder
Medlem: 18.Jan.2011
Land: DK
Status: Offline
Point: 5
|
Emne: Datoformatering Sendt: 18.Jan.2011 kl. 17:10 |
Hej Alle
Jeg har et lille problem med formatering af en dato.
Jeg har fra en CSV-fil fået nogle datoer, som er i formatet MM-DD-ÅÅÅÅ, men som jeg ønsker skal være i DD-MM-ÅÅÅÅ. Jeg plejer at tage en (måske) besværlig vej, hvor jeg først uddrager dele af den gamle dato (med formlerne VENSTRE,HØJRE og MIDT), som jeg sætter sammen igen på den ønskede måde.
I det pågældende ark giver de tre formler dog et resultat, som jeg ikke forstår og som jeg ahr forsøgt som en vanvittig at omformatere - men uden held.
Her er, hvad arket indeholder med dato først og resultatet af de tre formler derefter.
dato |
VENSTRE |
MIDT |
HØJRE |
11-01-2010 |
40 |
89 |
0189 |
Er der nogen, der kan hjælpe? Har vedhæftet en snip af det pågældende ark:
Mvh
Jesper
|
|
|
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 18.Jan.2011 kl. 17:53 |
Hej Jesper,
Grunden til forvirringen er at Excel rent faktisk kender denne dato (1. januar 2010), og oversætter den til et serienummer (40189).
Når formatet er MM-DD-ÅÅÅÅ kan datoer se ud som: 01-31-2010, her kan Excel ikke se det er en dato (Fordi dag 1 i den 31 måned ikke findes.
Men situationen ændrer sig ved datoer som 11-01-2010, som nok i din fil betyder 1. november, men Excel ser det som 11. januar og oversætter til serienummeret: 40189.
Derfor virker dine formler ikke på disse datoer. (Prøv at formatere datoerne som tekst, og se hvad der sker.)
Når du importerer din CSV, åbner du den bare ved dobbeltklik, gør du det via Excel 'Hent Eksterne data' eller bruger til 'Tekst til kolonner'?
//Allan
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 18.Jan.2011 kl. 21:47 |
Hej igen Jesper,
Som skrevet, ved jeg ikke hvordan du åbner din CSV, men denne formel kan måske hjælpe dig.
Formlen tager for givet, at formatet er MM-DD-ÅÅÅÅ og konverterer derefter dine tal til DD-MM-ÅÅÅÅ.
//Allan
|
|
Spotteck
Forum Begynder
Medlem: 18.Jan.2011
Land: DK
Status: Offline
Point: 5
|
Sendt: 19.Jan.2011 kl. 15:16 |
Hej Allan
Tak for et godt og hurtigt svar! Den pågældende opgave løste jeg ved at importere data via "Hent eksterne data" og markere dato kolonnerne som "Tekst" - derefter kunne jeg køre en formel, der inkluderede VENSTRE,MIDT og HØJRE - som jeg derefter kunne samle til en ny dato.
Tak for din formel også, som jeg dog har problemer med at få til at fungere med mine data, da de ikke kommer helt så pænt ud fra CSV-filen. Hvis jeg uploader min CSV, kan jeg så lokke dig til at se på den og give mig et svar på, hvordan jeg bedst kan behandle sådanne data (skal nemlig ofte lave denne opgave i fremtiden)?
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 19.Jan.2011 kl. 15:29 |
Ja, da, intet problem.
Jeg skal gladeligt kigge på den.
//Allan
|
|
Spotteck
Forum Begynder
Medlem: 18.Jan.2011
Land: DK
Status: Offline
Point: 5
|
Sendt: 20.Jan.2011 kl. 15:01 |
/uploads/165/Datoformat.zip" target="_blank">
Hej Allan
Super!
Jeg har uploadet rådata i CSV-format og lagt den i den vedhæftede Zip-fil.
Mvh
Jesper
uploads/165/Datoformat.zip
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 20.Jan.2011 kl. 21:00 |
Hej igen,
Når du har importeret dato fra denne fil, så prøv at sætte denne formel i G2
=HVIS(ER.TAL(A2);DATO(ÅR(A2);DAG(A2);MÅNED(A2));HVIS(LÆNGDE(VENSTRE(A2;LÆNGDE(VENSTRE(A2;FIND(" ";A2;1)))))=11;DATO(HØJRE(VENSTRE(A2;FIND(" ";A2;1)-1);4);VENSTRE(VENSTRE(A2;FIND(" ";A2;1));2);MIDT(VENSTRE(A2;FIND(" ";A2;1));4;2));MIDT(VENSTRE(A2;FIND(" ";A2;1));3;2)&"-"&"0"&VENSTRE(VENSTRE(A2;FIND(" ";A2;1));1)&"-"&HØJRE(VENSTRE(A2;FIND(" ";A2;1)-1);4)))
Hvis dine data ligger i A til E, formoder jeg at formlen vil virke.
//Allan
|
|
Spotteck
Forum Begynder
Medlem: 18.Jan.2011
Land: DK
Status: Offline
Point: 5
|
Sendt: 21.Jan.2011 kl. 12:03 |
Hej Allan
Jeg er sgu imponeret!
Formlen virker for 90% af datoerne, men jeg kan ikke rigtig overskue formlen og sige hvor fejlen ligger.
Har du et bud eller er vi nået derftil, hvor det ikke bliver bedre?
Taknemmelige hilsner
Jesper
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 21.Jan.2011 kl. 12:19 |
Hej Jesper,
Det er fordi jeg 'kun' har taget højde for at måneden (MM-DD-ÅÅÅ) kan være på 1 ciffer, jeg kan se at det kan dagen også
Kombinationen af dag og måned med 1 ciffer kan jo også forekomme, så det giver lige lidt ekstra regnearbejde.
Jeg har ikke tid lige nu, men jeg kigger på den i aften. OK?
//Allan
|
|
Spotteck
Forum Begynder
Medlem: 18.Jan.2011
Land: DK
Status: Offline
Point: 5
|
Sendt: 21.Jan.2011 kl. 12:40 |
Ok.
Jeg er glad for al den hjælp jeg kan få - Tusind tak!
Mvh
Jesper
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 23.Jan.2011 kl. 20:24 |
Hej igen Jesper,
Kender du til makroer?
Jeg tror denne lidt mere brugervenlige metode er bedre i denne situation.
Efter du har importeret dine data, så marker alle dine 'datoer' og kør denne makro.
Sub Korriger_Datoer() For Each c In Selection.Cells If c.Value <> "" Then If c.NumberFormat = "General" And c.Value <> "N/A" Then c.Value = "'" & Month(c) & "-" & Day(c) & "-" & Year(c) c.NumberFormat = "dd-mm-yyyy" c.Value = Replace(c, "'", "", 1, 1) End If If c.NumberFormat = "m/d/yyyy h:mm" Then c.Value = "'" & Month(c) & "-" & Day(c) & "-" & Year(c) c.NumberFormat = "dd-mm-yyyy" c.Value = Replace(c, "'", "", 1, 1) End If End If Next c End Sub
Prøv den lige af
//Allan
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 23.Jan.2011 kl. 20:35 |
Alternativt, brug denne skabelon.
Sæt dine 'datoer' ind i arket (Dato1 til Dato5)
Klik på knappen 'Korriger datoer'
Jobbet er udført.
(Jeg har lagt data ind i arket, så prøv at klikke på knappen med det samme)
//Allan
|
|
Spotteck
Forum Begynder
Medlem: 18.Jan.2011
Land: DK
Status: Offline
Point: 5
|
Sendt: 28.Jan.2011 kl. 10:19 |
Hej Alan
Sorry, for den sene tilbagemelding.
Jeg har ikke ligefrem sort bælte i VBA og makroer, men efter at have set din sidste løsning, kan det da kun gå for langsomt med at komme på kursus i det.
Tusind tak for hjælpen.
Mvh
Jesper
|
|
Allan
Forum Admin
Forum Admin
Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
|
Sendt: 28.Jan.2011 kl. 10:27 |
Hej Jesper,
Velbekomme, det var dejligt du kunne bruge det.
VBA gør arbejdet meget lettere og ofte mere elegant, du vil ikke fortryde det.
//Allan
|
|
|