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. 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...
  3. 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...
  4. 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...
  5. Suchfunktion beschleunigen

    in Microsoft Word Hilfe
    Suchfunktion beschleunigen: Hallo, ich habe ein sehr großes Word-Dokument in dem ich sehr oft suche. Die Suche starte ich i.d.R. vom Anfang des Dokuments weil ich dann sehr häufig eine Fundstelle direkt im Inhaltsverzeichnis...
  6. SEHR GROßE ZAHLEN EXPONENZIEREN

    in Microsoft Excel Hilfe
    SEHR GROßE ZAHLEN EXPONENZIEREN: Hallo an alle Experten, gibt es eine Möglichkeit, in Excel Zahlen (sowohl positiv, negativ, auch rational), auch mit deutlich mehr als 20 Kommastellen, zu exponenzieren, und dies auch mit sowohl...
  7. Größe des Zeichnungsbereichs oder der Tortengrafik ändern

    in Microsoft Excel Hilfe
    Größe des Zeichnungsbereichs oder der Tortengrafik ändern: Hallo, ich habe in Excel 2019 einige Tortengrafiken, bei denen die Torten gleich groß sein sollen. Ich kann die Größe des Zeichnungsbereichs über die Ziehpunkte ändern, aber ich möchte präzise...
  8. [VBA] Excel Tabelle via Bookmark nach Word + Größe an Fenster anpassen

    in Microsoft Excel Hilfe
    [VBA] Excel Tabelle via Bookmark nach Word + Größe an Fenster anpassen: Hallo zusammen, kennt jemand einen Kniff, wie ich eine aus Excel kopierte Range (inkl. Formatierung, jedoch ohne Verknüpfung) an die Stelle eines Bookmarks in einem Word-Dokument als neue Tabelle...
  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