Office: 560 MB große csv Datei öffnen

Helfe beim Thema 560 MB große csv Datei öffnen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, folgendes Problem: Wir haben hier auf der Arbeit eine csv Datei welche ca. 560 MB groß ist und vermutlich über 8 Millionen Zeilen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Infit, 28. Juni 2010.

  1. Infit Erfahrener User

    560 MB große csv Datei öffnen


    Hallo zusammen,

    folgendes Problem: Wir haben hier auf der Arbeit eine csv Datei welche ca. 560 MB groß ist und vermutlich über 8 Millionen Zeilen besitzt. Gibt es eine Möglichkeit die mit irgendeinem Programm zu öffnen (das Programm sollte dennoch Spalten nach einem Wert sortieren können), oder vorm öffnen zu splitten oder ähnliches?

    Mit Excel 2007 werden mir nur 1 Millionen Zeilen angezeigt, dann hackt er die Liste einfach ab an dieser Stelle.
     
    Infit, 28. Juni 2010
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    ja da hast Du die grenze von Excel erreicht. In Excel kannst Du es nicht als eine Liste öffnen. Ich habe auch keinen Vorschlag für ein anderes Programm.
     
    Hajo_Zi, 28. Juni 2010
    #2
  3. Infit Erfahrener User
    Ich bin kein Programmierer, aber gibt es da nicht irgendeine Möglichkeit die Datei zu splitten? In sagen wir mal 50 MB große Parts welche dann ca. 1 Millionen Zeilen beinhalten?
     
    Infit, 28. Juni 2010
    #3
  4. Hajo_Zi
    Hajo_Zi Erfahrener User

    560 MB große csv Datei öffnen

    ich habe mich mit dem einlesen von Daten noch nicht befast, da gibt es aber bestimmt Beispiele im Forum.
    Aber Du möchtest die Daten ja sortieren, was bei geteilt schlecht möglich ist.
     
    Hajo_Zi, 28. Juni 2010
    #4
  5. Infit Erfahrener User
    Naja, ich würde die Parts dann halt einzelnd aufrufen und sortieren. Und dann in einer anderen Datei (das raussortierte) wieder zusammenfügen.
     
    Infit, 28. Juni 2010
    #5
  6. schatzi Super-Moderator
    Hallo!

    Mit MS Access sollte das möglich sein. Hier ist die Länge der Liste nur durch den verfügbaren Speicher begrenzt, soweit ich weiß.
     
    schatzi, 28. Juni 2010
    #6
  7. miriki Erfahrener User
    Wie Schatzi auch schon schrieb: Du wirst die Datei wohl nur mit Access einlesen können.

    Aus Access heraus kannst Du dann aber wiederum Teil-Listen in Excel exportieren. Alternativ müßte man in Excel auch Abfragen erstellen können, die nur Teil-Listen aus der Gesamt-Tabelle in Access importieren.

    Der letzte Weg wäre, die Datei vor dem Import mit einer VBA-Routine zu teilen. Diesen Weg würde ich aber nur gehen, wenn kein Office-Pro (und demnach kein Access) zur Verfügung steht.

    Eine derartige Datenmenge wirst Du aber so oder so nicht "an einem Stück" in Excel verarbeiten können. Suchen, Sortieren und Filtern geht immer nur auf einem Teil der Gesamt-Liste, da diese auf mehrere Tabellenblätter verteilt ist. Ob das letztendlich ein gangbarer Weg ist...

    Gruß, Michael
     
    miriki, 29. Juni 2010
    #7
  8. Infit Erfahrener User

    560 MB große csv Datei öffnen

    Dankeschön, das klingt doch schon mal nicht schlecht, werd es dann mal mit Access probieren.


    Den Teil hab ich nicht ganz verstanden. Soll heissen wenn ich eine Datei mit 1 Millionen Zeilen habe, kann ich diese nicht sortieren? Oder nur einen Teil davon?
     
    Infit, 29. Juni 2010
    #8
  9. miriki Erfahrener User
    Nein, nicht ganz.

    Wenn Du eine Liste mit 8 Mio. Datensätzen hast, kannst Du immer nur 1 Mio. davon bearbeiten, sortieren, filtern oder was auch immer. Ich weiß jetzt nicht genau, wo die Grenze bei 2007 ist.

    Du könntest also z.B. 8 Blätter (in 1 Mappe) mit jeweils 1 Mio Datensätzen haben. Suchst Du nun nach dem Nachnamen "Schmidt", dann mußt Du das eben in jedem Blatt hintereinander machen.

    Per Autofilter alle "Müller" herauszusuchen, ist ebenfalls eine 8-fach Aufgabe und Du hast das Ergebnis eben nicht untereinander, sondern auf 8 Blättern verteilt.

    Gruß, Michael
     
    miriki, 29. Juni 2010
    #9
  10. Beverly
    Beverly Erfahrener User
    Hi,

    wenn du es anstelle von Access doch mit Excel versuchen willst, wäre da folgende Möglichkeit: benenne 1. die csv-Datei in .txt um (vorher Sicherheitskopie anfertigen!) und lasse dann 2. diesen Code laufen
    Code:
    Sub einlesen()
        Dim arrText
        Dim strText As String
        Dim loZeile As Long
        Dim loZeile2 As Long
        loZeile2 = 1
        Application.ScreenUpdating = False
        Open "C:\Test\Mappe1.txt" For Input As #1 '<== Pfad und Dateiname anpassen
        Do While Not EOF(1)
            Line Input #1, strText
            arrText = Split(strText, ";")
            ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Cells(loZeile2, 1).Resize(1, UBound(arrText)) = arrText
            Erase arrText
            loZeile = loZeile + 1
            If loZeile2 = 1048576 Then
                ThisWorkbook.Worksheets.Add after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
                loZeile2 = 0
            End If
            loZeile2 = loZeile2 + 1
        Loop
        Application.ScreenUpdating = False
        Close #1
    End Sub
    Die Datei wird so ausgelesen, dass immer ein neues Tabellenblatt angelegt wird, sobald 1048576 Zeilen mit Daten belegt sind. Du musst dabei bedenken, das das einerseits bei deiner Datenmenge wohl sehr lang dauern kann und du andererseits möglicherweise an die Grenzen von Excel stößt - ich kann beides nicht überprüfen, da ich keine csv- oder txt-Datei von dieser Größenordnung besitze.
    Die von Michael (miriki) genannten Einschränkungen bleiben auch in diesem Fall bestehen.

    Bis später,
    Karin
     
    Beverly, 29. Juni 2010
    #10
  11. Infit Erfahrener User
    Erst mal Danke für die vielen Antworten und Ideen :) !!!

    @Beverli: Aber die Einschränkungen würden ja in dem Fall garnicht mehr zutreffen, da die Dateien dann ja nur bis zum Maximum von 1048576 gehen und damit dann auch sortierbar, filterbar usw. sind, oder? Das ich das dann für 8 Tabellen machen muss ist klar, aber das seh ich nicht wirklich als Aufwand an. Ziehe mir wie gesagt die Daten die brauche aus den 8 Tabellenblättern raus und packe mir die in ne neue Excel Datei per copy&paste.

    Das mit dem Code würde ich gerne mal ausprobieren, mir ist nur nicht ganz bewusst wo ich diesen Code einfügen muss?!
     
  12. Beverly
    Beverly Erfahrener User
    Hi,

    die Daten gehen bis Zeile 1048576 und werden dann in der nächsten Tabelle ab Zeile 1 fortgesetzt - so ist der Code aufgebaut.

    Der Code gehört in ein allgemeines Modul und lässt sich über das Register: Entwicklertools -> Befehlsgruppe: Code -> Schalter: Makros aufrufen und ausführen.

    Bis später,
    Karin
     
    Beverly, 30. Juni 2010
    #12
  13. Infit Erfahrener User

    560 MB große csv Datei öffnen

    Ich glaube es funktioniert, werds nach der Arbeit mal durchlaufen lassen weil scheint wirklich sehr lange zu brauchen. Werd dann Morgen nochmal Bescheid geben obs geklappt hat ;)
     
  14. Infit Erfahrener User
    Hallo Karin, ich hab das Makro diese Nacht mal durchlaufen lassen, leider ist der Vorgang irgendwann abgebrochen. Der Debugger markiert mir folgende Zeile als Problem:

    ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Cells(loZeile2, 1).Resize(1, UBound(arrText)) = arrText

    Könntest Du mir da nochmal weiterhelfen?

    Es handelt sich übrigens um 4 Spalten falls das für das Makro von Bedeutung ist (ABCD).
     
Thema:

560 MB große csv Datei öffnen

Die Seite wird geladen...
  1. 560 MB große csv Datei öffnen - Similar Threads - 560 große csv

  2. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  3. Große Textdatei - Formate entschlacken

    in Microsoft Word Hilfe
    Große Textdatei - Formate entschlacken: Hallo, ich arbeite seit längerem mit einer ziemlich großen Datei (mittlerweile 2000 Seiten), die sozusagen mein Zettelkasten ist. Alles ist leicht auffindbar durch Überschriften (2 Ebenen) und...
  4. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  5. Prozedur ist zu groß

    in Microsoft Excel Hilfe
    Prozedur ist zu groß: Hallo ich habe ein Problem und zwar werden sehr viele Kombinationsfelder beim Öffnen eines Excel Workbook gefüllt. Diese führt jetzt zu einer zu großen Prozedur. Hätte da jemand eine Lösung? Gruß...
  6. Formel auf andere Zellen unterschiedlicher Größe anwenden

    in Microsoft Excel Hilfe
    Formel auf andere Zellen unterschiedlicher Größe anwenden: Hallo zusammen, ich habe eine Formel gebastelt, die wie angehängt in der Beispiel-Excel zu sehen ist, funktioniert. Kann ich die Formel so vereinfachen, dass ich nicht 3x die angepasste Formel...
  7. Wenn der Wert größer ist als 10 will ich die Differenz in einer Spalte haben

    in Microsoft Excel Hilfe
    Wenn der Wert größer ist als 10 will ich die Differenz in einer Spalte haben: Hallo zusammen, auf dem Bild im Anhang ist mein Zeiterfassungssystem zusehen. Spalte E ist meine Gesamtstundenzahl, wenn diese Zahl größer ist als 10 möchte ich die Differenz daraus in Spalte I...
  8. Zwei gleiche Dateien unterschiedlich groß?

    in Microsoft Excel Hilfe
    Zwei gleiche Dateien unterschiedlich groß?: Hallo, erst einmal einen schönen guten morgen. Ich bin neu hier und hoffe evtl. Hilfe bei meinem Problem zu erhalten :-) Folgendes Problem. Ich erstelle jeden Monat eine PPT (Ja ich weiß es...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden