Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

CSV Datei "schneiden"

Forumthread: CSV Datei "schneiden"

CSV Datei "schneiden"
18.10.2018 12:31:57
Julius
Hallo liebe Freunde,
ich habe leider keine Lösung im Netz gefunden, deshalb richte ich mich jetzt direkt an euch.
Ich habe eine sehr große CSV Datei (über 10 Mio Zeilen), welche mir Excel natürlich nicht öffnet...
In der 2. Spalte steht das Datum mit Uhrzeit. (z.B. 15.01.2016 12:30)
Ich würde gerne versuchen, die Datei so zu schneiden, dass ich die Zeilen bedingt nach der Uhrzeit (also eine Arbeitsmappe pro Stunde vom Tag) in die Arbeitsmappen verteile. Hat hier jemand vielleicht schon mal eine ähnliche Lösung geschrieben, welche nur abgewandelt werden müsste?
Schon mal besten Dank an alle!
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV Datei "schneiden"
18.10.2018 13:17:53
ChrisL
Hi Julius
Bei 10 Mio. Datensätze würde ich eine Art von Abfrage wählen. Hierzu kannst verschiedene Mittel verwenden PowerQuery, Datenverbindung, ADODB usw.
Im Beispiel Mappe1.csv, Spalte A DatumZeit, Spalte B Wert, Filter: 12:30
SQL-String z.B.:
SELECT Mappe1.DatumZeit, Mappe1.Wert
FROM Mappe1
WHERE (((Hour([DatumZeit]) & Minute([DatumZeit]))="1230"));
Power-Query:
let
Quelle = Csv.Document(File.Contents("C:\Pfad\Mappe1.csv"),[Delimiter=";", Columns=2, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Höher gestufte Header" = Table.PromoteHeaders(Quelle, [PromoteAllScalars=true]),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Höher gestufte Header",{{"DatumZeit", type datetime}, {"Wert", Int64.Type}}),
#"Uhrzeit eingefügt" = Table.AddColumn(#"Geänderter Typ", "Zeit", each DateTime.Time([DatumZeit]), type time),
#"Gefilterte Zeilen" = Table.SelectRows(#"Uhrzeit eingefügt", each ([Zeit] = #time(12, 30, 0)))
in
#"Gefilterte Zeilen"

cu
Chris
Anzeige
AW: CSV Datei "schneiden"
18.10.2018 13:28:11
Rudi
Hallo,
erzeugt lauter kleine .csv:
Sub SplitCSV()
Dim strFile As String, strTmp, strTime, vntTmp
Open "c:\test\test.csv" For Input As #1
Do While Not EOF(1)
Line Input #1, strTmp
vntTmp = Split(strTmp, ";")
strTime = Format(CDate(vntTmp(1)), "YYYYMMDD_hh")
If strFile  strTime Then
Close #2
strFile = strTime
Open "c:\test\" & strFile & ".csv" For Output As #2
End If
Print #2, strTmp
Loop
Close #1
Close #2
End Sub

Gruß
Rudi
Anzeige
AW: CSV Datei "schneiden"
18.10.2018 13:48:09
Julius
Hallo Rudi,
herzlichen Dank, das ist wirklich super :-)
Nur zur Verständnis: Ich habe die Datums und Zeitangabe in Spalte B, muss ich dementsprechend noch Anpassungen vornehmen?
Gruß
Julius
sollte so gehen. owT
18.10.2018 15:01:42
Rudi
;
Anzeige

Infobox / Tutorial

CSV-Datei nach Uhrzeit aufteilen


Schritt-für-Schritt-Anleitung

Um eine große CSV-Datei nach Uhrzeit in Excel aufzuteilen, kannst du folgende Schritte befolgen:

  1. Power Query verwenden:

    • Öffne Excel und gehe zu Daten > Daten abrufen > Aus Datei > Aus CSV.
    • Wähle deine CSV-Datei aus und lade sie.
    • Im Power Query-Editor kannst du die Uhrzeit extrahieren und filtern, indem du die oben angegebenen Power Query Schritte von ChrisL anwendest.
  2. VBA-Makro nutzen:

    • Öffne den VBA-Editor mit ALT + F11.
    • Füge ein neues Modul hinzu (Einfügen > Modul).
    • Kopiere den VBA-Code von Rudi in das Modul:
      Sub SplitCSV()
      Dim strFile As String, strTmp, strTime, vntTmp
      Open "c:\test\test.csv" For Input As #1
      Do While Not EOF(1)
         Line Input #1, strTmp
         vntTmp = Split(strTmp, ";")
         strTime = Format(CDate(vntTmp(1)), "YYYYMMDD_hh")
         If strFile <> strTime Then
             Close #2
             strFile = strTime
             Open "c:\test\" & strFile & ".csv" For Output As #2
         End If
         Print #2, strTmp
      Loop
      Close #1
      Close #2
      End Sub
    • Stelle sicher, dass der Dateipfad und die Spaltenbezeichnung korrekt sind.
  3. CSV-Datei speichern:

    • Nach dem Ausführen des Makros werden mehrere CSV-Dateien nach Uhrzeit erstellt, die du in Excel weiterverarbeiten kannst.

Häufige Fehler und Lösungen

  • Fehler: CSV-Datei kann nicht geöffnet werden:

    • Lösung: Überprüfe die Dateigröße; Excel hat eine Zeilenbegrenzung. Verwende Power Query oder das VBA-Makro.
  • Fehler: Falsches Datumsformat:

    • Lösung: Achte darauf, dass das Datumsformat in der CSV-Datei mit dem in Excel übereinstimmt. Möglicherweise musst du das Datumsformat im VBA-Code anpassen.
  • Fehler: Makro läuft nicht:

    • Lösung: Stelle sicher, dass Makros in deinen Excel-Einstellungen aktiviert sind.

Alternative Methoden

  • Datenbankabfragen:

    • Nutze SQL-Abfragen in Excel, um gezielt Daten zu filtern. ChrisL hat ein Beispiel für eine SQL-Abfrage bereitgestellt, die du anpassen kannst.
  • Drittanbieter-Tools:

    • Es gibt verschiedene Tools, die speziell für das Bearbeiten von CSV-Dateien entwickelt wurden, wie CSVed oder CSVFileView.

Praktische Beispiele

  • Beispiel 1:

    • Wenn dein CSV-Dokument eine Spalte mit Zeitstempeln hat, wende die oben genannten Schritte an, um alle Daten für die Stunde von 12:00 bis 13:00 Uhr in eine separate Datei zu exportieren.
  • Beispiel 2:

    • Mit dem VBA-Skript kannst du die ursprüngliche CSV-Datei in stündliche Dateien aufteilen, z.B. 20160115_12.csv für den 15. Januar 2016, 12 Uhr.

Tipps für Profis

  • Datenmodell nutzen:

    • Wenn du mehrere große Dateien hast, überlege, diese in Power BI zu importieren, um umfassendere Analysen durchzuführen.
  • Automatisierung:

    • Automatisiere den Prozess mit einem VBA-Skript, das regelmäßig ausgeführt wird, um neue Daten zu verarbeiten.
  • Daten validieren:

    • Überprüfe nach dem Teilen die neuen CSV-Dateien, um sicherzustellen, dass keine Daten verloren gegangen sind.

FAQ: Häufige Fragen

1. Wie viele Zeilen kann Excel verarbeiten? Excel hat eine maximale Zeilenanzahl von 1.048.576. Bei größeren Dateien empfiehlt sich die Verwendung von Power Query oder VBA.

2. Kann ich mehrere Uhrzeiten gleichzeitig filtern? Ja, du kannst die SQL-Abfrage oder das Power Query anpassen, um mehrere Uhrzeiten zu berücksichtigen.

3. Was mache ich, wenn meine CSV-Datei nicht im richtigen Format ist? Versuche, die CSV-Datei zuerst in einem Texteditor zu öffnen und das Format zu überprüfen oder zu konvertieren, bevor du sie in Excel importierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige