Importieren einer Teilmenge von Datensätzen (Microsoft Excel)
Gordon fragt sich, wie er eine Teilmenge einer Textdatei in Excel importieren kann, abhängig vom Wert eines bestimmten Feldes. Beispielsweise möchte er möglicherweise nur Datensätze importieren, die in Spalte 5 jedes Datensatzes in der Textdatei ein „y“ enthalten.
Es gibt verschiedene Möglichkeiten, wie Sie sich dieser Aufgabe nähern können. Zum einen können Sie einfach die gesamte Textdatei importieren, die Datensätze sortieren und die nicht gewünschten löschen. Dies ist möglicherweise die einfachste Option, wenn Sie nur eine einzelne Datei verarbeiten müssen und die gesamte Datei in ein einzelnes Arbeitsblatt passen kann.
Ein anderer Ansatz ist die Verwendung eines Makros. (Dies ist diejenige, die ich am schnellsten und einfachsten finde, insbesondere wenn Sie denselben Dateityp ziemlich oft importieren müssen.) Das Makro kann die Textdatei öffnen, jede Zeile lesen und dann feststellen, ob die Informationen in dieser Zeile sollten dem Arbeitsblatt hinzugefügt werden oder nicht. In diesem Beispiel wird eine Datei mit dem Namen „MyCSVFile.txt“ geöffnet und die Daten ab der ersten Zeile in ein neues Arbeitsblatt eingefügt.
Sub ReadMyFile() Dim R As Integer Dim C As Integer Dim sDelim As String Dim sRaw As String Dim ReadArray() As String sDelim = "," ' Set to vbTab if tab-delimited file Worksheets.Add Open "myCSVFile.txt" For Input As #1 R = 1 Do While Not EOF(1) Line Input #1, sRaw ReadArray() = Split(sRaw, sDelim, 20, vbTextCompare) If ReadArray(4) = "y" Then For C = 0 To UBound(ReadArray) Cells(R, C + 1).Value = ReadArray(C) Next C R = R + 1 End If Loop Close #1 End Sub
Um das Makro zu verwenden, ändern Sie einfach den Namen der Datei entsprechend der zu verarbeitenden Datei. Sie sollten auch die Variable sDelim ändern, um sicherzustellen, dass sie mit dem übereinstimmt, was in Ihren Datensätzen als Trennzeichen verwendet wird. Wie geschrieben wird davon ausgegangen, dass das Trennzeichen ein Komma ist (wie es in einer CSV-Datei der Fall wäre). Sie können es jedoch in vbTab ändern, wenn Sie tatsächlich mit einer durch Tabulatoren getrennten Datei arbeiten. Nach Abschluss des Makros befinden sich im neuen Arbeitsblatt nur die Datensätze mit einem einzelnen Kleinbuchstaben „y“.
Ein anderer Ansatz ist die Verwendung der Power Query-Funktion von Excel. Dies ist ein kostenloses Add-In von Microsoft, das für einige Variationen von Excel 2010 und Excel 2013 verfügbar ist. Sie können Folgendes herunterladen (und herausfinden, welche Variationen unterstützt werden):
http://www.microsoft.com/en-us/download/details.aspx?id=39379
Wenn Sie Excel 2016 verwenden, ist Power Query in das Programm integriert.
Wenn Sie Power Query in Ihrer Excel-Version installiert haben oder verfügbar sind und diese Excel-Version zufällig Excel 2010 oder Excel 2013 ist, gehen Sie folgendermaßen vor:
-
Zeigen Sie die Registerkarte Power Query des Menübands an.
-
Klicken Sie auf Aus Datei | Von CSV. Excel zeigt das Dialogfeld „Durch Kommas getrennte Werte durchsuchen“ an, das einem Standarddialogfeld „Öffnen“ sehr ähnlich sieht.
-
Suchen Sie die CSV-Datei, die Sie in Excel importieren möchten, und wählen Sie sie aus.
-
Klicken Sie auf Öffnen. Excel lädt die Daten in ein Power Query-Fenster mit Filterschaltflächen für jedes Feld.
Wenn Sie Excel 2016 oder eine neuere Version verwenden, sind die Schritte etwas anders:
-
Zeigen Sie die Registerkarte Daten des Menübands an.
-
Klicken Sie in der Gruppe Get & Transform auf das Tool New Query (Excel 2016) oder das Tool Get Data (spätere Versionen von Excel). Excel zeigt einige Optionen an.
-
Klicken Sie auf Aus Datei | Aus Text / CSV. Excel zeigt das Dialogfeld Daten importieren an, das einem Standarddialogfeld zum Öffnen sehr ähnlich sieht.
-
Suchen Sie die CSV-Datei, die Sie in Excel importieren möchten, und wählen Sie sie aus.
-
Klicken Sie auf Öffnen. Excel lädt die Daten in ein Power Query-Fenster mit Filterschaltflächen für jedes Feld.
An diesem Punkt können Sie – unabhängig von der von Ihnen verwendeten Excel-Version – mithilfe der Steuerelemente eine Abfrage angeben (dh festlegen, welche Datensätze importiert werden sollen). Wenn Sie auf Schließen und Laden klicken, werden die Datensätze aus der Datei abgerufen und die Abfrage kann für die zukünftige Verwendung gespeichert werden.
Ein vierter Ansatz ist die Verwendung von Microsoft Query. Dazu müssen Sie diese sehr lange Reihe von Schritten ausführen. (Niemand hat jemals gesagt, dass Microsoft die Verwendung von Microsoft Query vereinfachen möchte, und Sie werden zustimmen, nachdem Sie diese Schritte ausgeführt haben.)
-
Zeigen Sie die Registerkarte Daten des Menübands an.
-
Klicken Sie in der Gruppe Daten abrufen und transformieren auf das Werkzeug Daten abrufen, wählen Sie dann Aus anderen Quellen (in der Gruppe Externe Daten abrufen frühere Versionen von Excel) und dann Aus Microsoft Query. Excel zeigt das Dialogfeld Datenquelle auswählen an. (Siehe Abbildung 1.)
-
Wählen Sie die Option Neue Datenquelle und klicken Sie auf OK. Excel zeigt das Dialogfeld Neue Datenquelle erstellen an. (Siehe Abbildung 2.)
-
Geben Sie einen Namen für Ihre Datenquelle an, z. B. „CSV-Dateien“.
-
Wählen Sie in der Dropdown-Liste für Element 2 Microsoft Text Driver aus.
-
Klicken Sie auf Verbinden. Excel zeigt das Dialogfeld ODBC Text Setup an.
-
Klicken Sie sofort auf OK, um das Dialogfeld zu schließen.
-
Klicken Sie auf OK, um das Dialogfeld Neue Datenquelle erstellen zu schließen. Excel aktualisiert das Dialogfeld Datenquelle auswählen mit dem in Schritt 4 angegebenen Namen.
-
Wählen Sie die soeben erstellte Datenquelle aus und klicken Sie auf OK. Excel zeigt eine Warnung an, dass die Quelle keine Datentabellen enthält. (Das ist in Ordnung; Sie haben keine definiert.)
-
Klicken Sie auf OK, um die Warnung zu schließen. Excel zeigt das Dialogfeld Abfrage-Assistent an.
-
Da Sie mit einem leeren Dialogfeld des Abfrage-Assistenten nichts tun können, klicken Sie auf Abbrechen. Excel zeigt eine Warnung an, in der Sie gefragt werden, ob Sie in Microsoft Query bleiben möchten.
-
Klicken Sie auf Ja. Excel zeigt das Dialogfeld Tabelle hinzufügen an.
-
Suchen Sie mithilfe der Steuerelemente im Dialogfeld Ihre CSV-Datei und wählen Sie sie aus.
-
Klicken Sie auf die Schaltfläche Hinzufügen. Excel scheint nichts zu tun, hat aber tatsächlich den Verweis auf die CSV-Datei hinzugefügt.
-
Klicken Sie auf die Schaltfläche Schließen, um das Dialogfeld Tabelle hinzufügen zu schließen. Ihre CSV-Datei wird im Microsoft Query-Fenster angezeigt.
-
Ziehen Sie anhand der Liste der Felder für die CSV-Datei jedes Feld, das in das Arbeitsblatt importiert werden soll, in den unteren Bereich des Microsoft Query-Fensters. (Wenn Sie alle Felder möchten, ziehen Sie einfach das Sternchen in den unteren Bereich des Fensters.)
-
Klicken Sie auf Kriterien | Kriterien hinzufügen. Excel zeigt das Dialogfeld Kriterien hinzufügen an. (Siehe Abbildung 3.)
-
Geben Sie mithilfe der Steuerelemente im Dialogfeld an, dass Feld 5 (unabhängig von seinem Namen) gleich „y“ sein soll.
-
Klicken Sie auf die Schaltfläche Hinzufügen, um die Kriterien tatsächlich zur Abfrage hinzuzufügen.
-
Klicken Sie auf Schließen, um das Dialogfeld Kriterien hinzufügen zu schließen.
-
Klicken Sie auf Datei | Daten an Microsoft Excel zurückgeben. Excel zeigt das Dialogfeld Daten importieren an. (Siehe Abbildung 4.)
-
Ändern Sie die Einstellungen im Dialogfeld nach Bedarf, um anzugeben, wie die CSV-Daten an Excel zurückgegeben werden sollen.
-
OK klicken.
(Ihnen wurde gesagt, dass die Schritte langwierig waren.) Sie können jetzt mit den Daten in Excel arbeiten und bei Bedarf die Werkzeuge auf der Registerkarte Design des Menübands verwenden, um die Daten aus der CSV-Datei zu aktualisieren.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (10384) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.