31. marts 2005 - 14:33Der er
27 kommentarer og 1 løsning
dato problemer
Jeg har en maget lang liste med over 20000 rækker hvor der er skrevet datoer. Nogle af disse er højrestillet og andre venstrestillet. Ens for alle dem der er højrestillet er at de er skrevet mm-dd-åååå og dem der er venstrestillet skrevet dd-mm-åååå. Det jeg ønsker er at alle skal konveteres til mm-dd-åååå
Er du sikker på at alle de venstrestillede datoer er korrekte i forhold til det indlæste? For det at de er venstrestillede kunne lyde som om det registreret som "tekst" og ikke som dato. Det kan ske når man indlæser at den ikke kan genkende det du indlæser som dato eller beløb - hvorfor den indlæser som tekst.
Jeg går ud fra at det ikke skyldes formateringen af cellerne (fordi der er tale om højre- og venstrestillede værdier)
Du han få et eksempel 30-04-2002 10.34.09 06-05-2002 h 30-04-2002 10.36.23 05-02-2002 h 30-04-2002 10.43.16 30-04-2002 v 30-04-2002 10.45.27 05-01-2002 h 30-04-2002 10.46.39 05-02-2002 h 30-04-2002 11.20.23 13-05-2002 v 30-04-2002 13.25.27 05-06-2002 h 30-04-2002 13.27.38 06-09-2002 h 30-04-2002 13.32.11 18-06-2002 v
Dem der står h ved var højrestillet i regnearket og datoen er mm-dd-åååå Og ja det ser ud til at det kun er de højrestillet der er forkerte
Jeg et forslag, hvor du retter til i en "2-trins raket". Du sorterer dine data, så du får alle dine "forkerte" datoer til sidst eller først. Derefter kopier du denne formel ind i en hjælpecelle ved siden af: =DATE(MID(A4;7;4);MID(A4;1;2);MID(A4;4;2)) på dansk: =DATO(MIDT(A4;7;4);MIDT(A4;1;2);MIDT(A4;4;2)). Du retter A4 til den celle du referer til, og derefter kopier du den tilrettede formel til alle de forkerte "celler". Cellerne skal ha' det datoformat du ønsker, derefter kan du kopiere alle cellerne til f.eks. kolonne A og vælge indsæt værdi.
Du kan selvfølgelig også lave det hele med en makro:
Function BytMånedDag()
For Each c In Worksheets("Ark1").Range("A4:A20000") If c.HorizontalAlignment = xlHAlignRight Then c = DateSerial(Mid(c, 7, 4), Mid(c, 1, 2), Mid(c, 4, 2)) End If Next
Jeg oplevede at funktionen drillede lidt indtil jeg satte .value på, så hvis det ikke virker, så skulle denne her være god nok:
Function BytMånedDag()
For Each c In Worksheets("Ark1").Range("A4:A20000") If c.HorizontalAlignment = xlRight Then c.Value = DateSerial(Mid(c, 7, 4), Mid(c, 1, 2), Mid(c, 4, 2)) End If Next
Tryk på Alt-F11 og vælg så menuen Indsæt/Modul og så skal du faktisk blot kopiere nedenstående til det hvide område (som er det område, hvor du kan redigere makroerne).
Sub BytMånedDag()
For Each c In Worksheets("Ark1").Range("A4:A20000") If c.HorizontalAlignment = xlRight Then c.Value = DateSerial(Mid(c, 7, 4), Mid(c, 1, 2), Mid(c, 4, 2)) End If Next
Et forslag til test idet jeg tror stewen har ret i at de venstrestillede er tekst: sæt et 0 i en tilfældig celle kopier cellen marker alle dine dato højreklik og vælg "Indsæt speciel" Vælg så "Adder" og tryk ok
Alt er nu lavet om til rå tal.. Formater så hele markeringen til dit datoformat.
Pudsigt. Jeg har åbenbart også misforstået problemet (har nok svært ved at forstå at folk ved sine fulde fem vil vælge det amerikanske datoformat: mm-dd-yyyy), men jeg kan ikke blive helt klog på, hvad det er mikkel79 ønsker.
I det oprindelige spørgmål er højrestillede celler er skrevet med formatet mm-dd-åååå venstrestillede celler er skrevet med formatet dd-mm-åååå de vestrestillede er korrekte!
Men i mikkel79's kommentar 31/03-2005 15:21:47 er det lige omvendt (og det er det jeg lavede mit forlag ud fra).
Hvis mikkel79 vælger at holde fast i sit oprindelige udgangspunkt, så er bak's forslag klart det nemmeste.
Ok noget tid siden jeg har skrevet. Har sidet med noget andet Sorry, men vender nu tilbage. Kan ikke få jeres løsninger til at fungere. Skyldes nok at jeg ikke har det store kendskab til Excel. Et af problemerne er at den opfatter måneden som dag? så når der bliver lavet om på celle formatet bliver dagen betragtet som måned.
De stammer fra et booking system tror at fejlen skyldes at det er 2 forskellige pc´er skriver til en database. og at den en af dem er sat forkert op, men ved det ikke. jeg har ikke adgang til dem men kun dataen
Nej jeg har været på virksomheden. Fundet de data jeg skal bruge til en analyse, men har problemer med at lave analysen da min excel tabel har rod i datoerne. Så hvordan deres database fungere i fremtiden vedkommer ikke mig.
Ved at sortere dine datoer, får du de rigtige og "falske" datoer delt op i to grupper. Ved dine "falske" datoer, skal du så gøre som jeg har beskrevet.
Venstrestillede tekststrenge med datoer og tidspunkt er ændret til Excel-datoer uden tid: =DATOVÆRDI(VENSTRE(C2;10)) To kolonner med højrestillede datoer (i Excel format) har fået byttet rundt på måned og dag =DATO(ÅR(D2);DAG(D2);MÅNED(D2))
Venter så på tilbagemelding fra mikkel79, om hvorvidt dette forslag giver det ønskede resultat.
Ved at markere navnet på dem, der skal have point og derefter trykke accepter.
Husk at du højst må uddele 200 point pr. spørgsmål, så giv dig selv pointene på det spørgsmål, der dækker det samme som dette.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.