Ich erhalte von unserem Datenbankmanager ein Datenpaket in Form einer CSV-Datei. Ich importiere diese Daten zum Formatieren und Sortieren in Excel. Eine Spalte enthält jedoch drei Informationen, die ich analysieren und sortieren möchte. Eine einzelne Zelle in dieser Spalte besteht aus einer Benutzer-ID-Nummer und einem Benutzernamen (z. B. „83920 – johndavis“). Ich möchte diese Spalte anhand jedes dieser Begriffe sortieren können. Ist dies mit Makros in Excel möglich oder sollte ich VBA verwenden, und wenn ja, wie schlagen Sie vor, dieses Problem anzugehen?
Ich verfüge über einen Hintergrund in C und Python, sodass ich trotz begrenzter VBA-Kenntnisse Erfahrung in der Informatik habe.
Hier sind einige Informationen, die ich beim Experimentieren mit Lösungen gesammelt habe. Diese Seite war mein Ausgangspunkt:https://www.cedarville.edu/insights/blog/excel-how-to-parse-data-split-column-into-multiple.aspx Als ich jedoch versuchte, diese Methode zu verwenden, traten bei der Spaltenaufteilung Fehler auf und die Spalten wurden nicht richtig aufgeteilt (siehe Bilder). Ich glaube, das liegt daran, dass es sich bei den Spaltendaten um tatsächliche Daten handelt, die in VBA von einer anderen Seite der Excel-Tabelle bearbeitet wurden. Wie würden Sie diese Eigenartigkeit beheben?
Seite 1 des Spaltenaufteilungsassistenten
Seite 2 des Spaltenaufteilungsassistenten
Antwort1
Das ist eine ziemlich seltsame CSV-Datei, da sie Excel-Formeln enthält. Es wird nicht erwartet, dass eine CSV-Datei etwas anderes als Daten enthält.
Derzeit enthält die Zelle nicht nur den Datenwert B09 - Theater
, sondern auch die Formel:
=IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""), "B09 - Theater")
DerWENNFEHLERDie Formel wertet die (Dummy-)Funktion aus @__xludf.DUMMYFUNCTION("""COMPUTED_VALUE""")
und schreibt den Wert, wenn diese einen Fehler zurückgibt B09 - Theater
.
Wenn Sie diese Formeln nicht pflegen müssen (ich weiß nicht, ob sie einen Zweck erfüllen) und nur die Daten benötigen, ist es am einfachsten, alle Zellen auszuwählen undfügen Sie sie in ein neues Blatt ein alsWerte.
Danach können Siedie Antwort von iskyfire.
Antwort2
Gemäß meinem Kommentar zu Ihrem Beitrag können Sie stattdessen Folgendes tun:
Ich möchte auch darauf hinweisen, dass Ihr Bild, das einen Verweis auf eine VBA-Funktion mit dem Präfix „“ zeigt, @__xludf.
wahrscheinlich bedeutet, dass die Funktion für die aktuelle Arbeitsmappe nicht verfügbar ist. Sie befindet sich möglicherweise in einem anderen Modul einer anderen Arbeitsmappe oder in einer nicht verfügbaren Bibliothek.
Unabhängig davon, in einfachen Fällen mit Teil1TrennzeichenTeil 2, Sie können die obigen Formeln verwenden.
In komplexeren Fällen können Sie eine beliebige Zelle in Ihren Daten auswählen und mit „Daten“ > „Daten abrufen und transformieren“ > „Aus Tabelle/Bereich“ eine PowerQuery starten.
Im Power Query-Editor können Sie die Spalte auswählen, die Sie teilen möchten, und dann „Start“ > „Transformieren“ > „Spalte teilen“ > „Nach Trennzeichen“ verwenden und sie (zum Beispiel) wie folgt konfigurieren:
Die Ausgabe sieht folgendermaßen aus:
Sie können dann „Start“ > „Schließen und laden“ verwenden, um die Ergebnisse wieder in die Arbeitsmappe zu laden.
Antwort3
Text in Spalten umwandeln
Wenn Sie eine Zelle haben, die mehrere Datenwerte enthält, können Sie diese mit dem integrierten Assistenten zum Konvertieren von Text in Spalten trennen. Dadurch wird eine Tabelle mit 1 Datenwert pro Spalte erstellt, die es Ihnen ermöglicht, alle in Excel verfügbaren Filter und Sortiermethoden zu verwenden.
Notiz:Wenn Sie mehrere eindeutige Trennzeichen haben, die die einzelnen Datenwerte trennen, können Sie beispielsweise 83920/johndavis - new york city
mit Suchen und Ersetzen alle -
Zeichen in ändern /
oder umgekehrt. Sie müssen die einzelnen Datenwerte mit demselben Trennzeichen trennen, sonst müssen Sie den Assistenten mehrmals ausführen.
Sehenhttps://support.microsoft.com/en-us/office/text-in-verschiedene-spalten-aufteilen-mit-dem-assistenten-text-in-spalten-konvertieren-30b14928-5550-41f5-97ca-7a3e9c363ed7für weitere Informationen.
Entfernen überflüssiger Funktionen
Wenn die vorhandenen Daten gekapselt sind, können Sie „Suchen und Ersetzen“ mit „ Match entire cell contents
aktiviert“ und „ Look in: Formulas
ausgewählt“ verwenden.
Markieren Sie den Bereich, gehen Sie auf Suchen und Ersetzen, nehmen Sie Ihre Eingaben vor und wählen Sie „Alles ersetzen“. Zum Beispiel =IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""),"
durch eine leere Zeichenfolge.
Anschließend können Sie es erneut ausführen, um den Endteil ")
zu einer leeren Zeichenfolge zu entfernen.
Stellen Sie sicher, dass Sie vor der Durchführung umfangreicher Such- und Ersetzungsvorgänge eine Sicherungskopie der Originalkopie des Arbeitsblatts erstellt haben.