Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Texte trennen, dann eindeutig untereinander

Texte trennen, dann eindeutig untereinander
13.08.2023 19:11:10
Michael
Hallo miteinander,

lange nicht mehr da gewesen...
Ich möchte eine Spalte mit kommaseparierten Werten in eine Spalte umwandeln, in der jeder Wert nur einmal vorkommt. Ist das überhaupt mit einer einzigen Formel machbar?
Sowas wie Eindeutig(Glätten(Mtrans(Textteilen(A:A;","))))? Textteilen macht in den Zusammenhang schon nicht, was nötig wäre, damit Mtrans das zeilenweise dreht und Glätten die einzelnen Werte behandelt.
Hier mein Gebastel, das wohl zum Ziel führt, aber hat jemand eine Idee, das zu vereinfachen? (Alles in einen Texteditor kopieren, Komma gegen Umbruch ersetzen, alles zurück kopieren Eindeutig(Glätten(...)) zählt nicht ;-))
https://www.herber.de/bbs/user/162311.xlsx

Bitte kein VBA, auch wenn Ihr das noch so schnell hintippt. die Zeit ist es trotzdem nicht Wert! Bzw. möchte ich mich daran lieber erstmal selber versuchen und dann dazu fragen, sollte ich's nicht hinkriegen.
Jetzt interessiert mich eine formelbasierte Lösung.

Lieben Dank im Voraus!
Michael

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Texte trennen, dann eindeutig untereinander
14.08.2023 09:54:10
Michael
Hallo Onur,

vielen Dank. Nein, das ist es leider noch nicht ganz. Inzwischen merke ich, dass meine Beispieldatei eine Macke hat, die Formel in Zelle U2 muss natürlich
=SORTIEREN(EINDEUTIG(GLÄTTEN(VSTAPELN(B2:B862;C2:C862;D2:D862;E2:E862;F2:F862;G2:G862;H2:H862;I2:I862;J2:J862;K2:K862;L2:L862;M2:M862;N2:N862;O2:O862;P2:P862;Q2:Q862;R2:R862;S2:S862))))

heißen. Da hatte ich erst reduziert, dann gemerkt, dass sich inzwischen viel größere Dateien hochladen lassen, dann doch alle Einträge nach Spalte A kopiert und die Formel in U2 nicht mehr angepasst. Hier nochmal meine Ausgangssituation:
https://www.herber.de/bbs/user/162322.xlsx

Deine Liste in Spalte B umfasst nur 126 Einträge, es müssten m.E. 203 sein. Davon sind offensichtlich zahlreiche witzlos für die Weiterverarbeitung, aber bspw. "IT" bräuchte ich schon.

LG Michael
Anzeige
Statt Deines VSTAPELN bitte =ZUSPALTE(B2:S862;;1) nehmen
14.08.2023 10:27:54
lupo1
Statt Deines VSTAPELN bitte =ZUSPALTE(B2:S862;;1) nehmen
14.08.2023 10:47:18
Michael
Besten Dank! Damit hat sich dann meine "Codebaustelle" erledigt. Klasse!

LG Michael
Texte trennen, dann eindeutig untereinander
14.08.2023 10:27:56
daniel
HI
Zeilen- und Spaltengrenzen kann man mit Textverketten überwinden:
=SORTIEREN(EINDEUTIG(TEXTTEILEN(TEXTVERKETTEN(";";WAHR;GLÄTTEN(B2:S862));;";")))


Gruß Daniel
Texte trennen, dann eindeutig untereinander
14.08.2023 10:50:50
Michael
Danke, das ist gut zu wissen. So ist auch der leere Eintrag gleich weg.
Mir ging es aber darum, auf die Spalten B bis S gänzlich verzichten zu können.

LG Michael
Texte trennen, dann eindeutig untereinander
13.08.2023 19:39:33
Jan
Hallo

Das hier ist eine schöne Aufgabe ohne VBA und ohne Registerformel für Power Query.
Anzeige
Texte trennen, dann eindeutig untereinander
14.08.2023 09:47:28
daniel
HI

probiers mal so.
Werte, die über Zeilen und Spalten verteilt sind, kann man in eine einspaltige Liste umformen, indem man sie zuerst zu einem Text mit einem Trennzeichen zusammenfasst und wieder aufteilt.
=SORTIEREN(EINDEUTIG(TEXTTEILEN(TEXTVERKETTEN(";";WAHR;GLÄTTEN(B2:S112));"#";";")))



Gruß Daniel
Texte trennen, dann eindeutig untereinander
14.08.2023 10:03:19
Michael
Hallo Jan,

das hört sich vielversprechend an, Danke. Mit PQ habe ich leider gar keine Erfahrung. Magst Du mir das kurz beschreiben? Würde mich sehr interessieren.

LG Michael
Spalten B bis S sollen entfallen!
14.08.2023 10:54:46
Michael
Allen bislang nochmal herzlichen Dank, aber vielleicht wurde das bisher noch ganz deutlich.
Die Spalten B bis S sind ja nur zur Hilfe eingebaut. Die Frage ist, ob auf die irgendwie verzichtet werden kann?
Anzeige
Texte trennen, dann eindeutig untereinander
14.08.2023 13:29:39
Jan
Hallo

So würde das in PQ aussehen.
Da viele Länder verschiedene Schreibweisen haben, daher sind sie doppelt, dies könnte man im PQ-Editor durch Werte ersetzen auch berücksichtigen, aber überlasse ich dir.
Meine Schritte die gemacht habe kannst du alle im PQ-Editor rechts Seite oder im Erweiterten PQ-Editor nachlesen.
https://www.herber.de/bbs/user/162328.xlsx
AW @Jan: Texte trennen, dann eindeutig untereinander
14.08.2023 15:05:26
Michael
Hallo Jan,

ganz herzlichen Dank, dass Du Dir die Zeit genommen hast! Diese Variante werde ich mir ganz in Ruhe ansehen und dem Verständnis von PQ näher kommen.
Die kreativen Schreibweisen mancher Länder brauche ich in Excel zunächst genau so. Auch sie bekommen DatenbankIDs der richtigen Länder. In SQL werden die Original-Strings zeilenweise erneut zerlegt und mit der in Excel produzierten tempTable verjoint. Sonst müsste ich gut 3.000 Zeilen durchgehen und überall für die korrekte Schreibweise sorgen. Und dies sind nur die Import-Länder, da ist noch so'ne Spalte...

LG Michael
Anzeige
Texte trennen, dann eindeutig untereinander
14.08.2023 18:34:31
Luschi
Hallo Jan,

hier mal meine PQ-Lösung:
let

Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Länder", type text}}),
#"neue Spalte.1" = Table.AddColumn(#"Geänderter Typ", "Liste", each Text.Split([Länder], ",")),
#"Listen bereinigen" = Table.TransformColumns(#"neue Spalte.1",
{{"Liste", each List.Transform(_, Text.Trim)}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Listen bereinigen",{"Länder"}),
#"Erweiterte Liste" = Table.ExpandListColumn(#"Entfernte Spalten", "Liste"),
#"Sortierte Zeilen" = Table.Sort(#"Erweiterte Liste",{{"Liste", Order.Ascending}}),
Ergebnis_Liste = List.Distinct(#"Sortierte Zeilen"[Liste])
in
Ergebnis_Liste

Gruß von Luschi
aus klein-Paris
Anzeige
Texte trennen, dann eindeutig untereinander
14.08.2023 19:34:31
Jan
Hallo Luschi

Es war mir ja fast klar das du wieder mit dem super Bomber jetzt kommst. Dies ist eine super Lösung die in mein Archiv wandert und hoffentlich nicht vergammelt, sondern mehr Anwendung in meinem Hirn findet.
Vielen lieben Dank für deine Gedankengänge.
Besten Dank auch Dir, Luschi! (owT)
16.08.2023 08:14:28
Michael
Spalten B bis S sollen entfallen!
14.08.2023 11:05:44
daniel
Achso, du hast Spalte A als Ausgangsdaten.

naja, dann fast genauso, wie ich es dir gezeigt habe, nur das Glätten musst du anders platzieren:

=SORTIEREN(EINDEUTIG(GLÄTTEN(TEXTTEILEN(TEXTVERKETTEN(",";WAHR;A2:A862);;","))))


gruß Daniel
Spalten B bis S sollen entfallen!
14.08.2023 12:50:30
Michael
Hallo Daniel,

super! Danke! Genau das ist es! Hätte ich ja vielleicht auch fast selber drauf kommen, bin bei der Arbeit aber gerade mit anderem befasst ;-)

LG Michael
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Anzeige

Infobox zum Thema

EXCEL - Texte trennen, dann eindeutig untereinander auflisten


Inhaltsverzeichnis


Die Fragestellung


Du hast eine Liste von Texten in einer Excel-Spalte, wobei einige Zellen mehrere, durch Kommas getrennte Werte enthalten. Du möchtest diese Texte trennen und dann jeden Textwert nur einmal in einer neuen Liste untereinander auflisten.


Erläuterung des Problems {#erläuterung-des-problems}


Das Problem besteht darin, dass Excel standardmäßig keine direkte Funktion bietet, um mehrere Werte in einer Zelle zu trennen und dann Duplikate zu entfernen, um eine Liste eindeutiger Werte zu erstellen.


Lösung des Problems {#lösung-des-problems}


Eine Lösung kann in zwei Schritten erfolgen:

  1. Texte trennen: Du kannst die Funktion "Text in Spalten" verwenden, um die Texte zu trennen, oder eine Formel, die TEILEN (in neueren Excel-Versionen) oder TEXTTEILEN (in älteren Versionen) verwendet.

  2. Eindeutige Liste erstellen: Anschließend kannst du die Funktion EINDEUTIG (verfügbar in Excel für Microsoft 365 und Excel 2019) verwenden, um Duplikate zu entfernen und eine Liste eindeutiger Werte zu erstellen.

Hier ist ein Beispiel, wie du eine Formel verwenden kannst, um dies zu erreichen:

=TEILEN(A1; ",")

Diese Formel teilt den Inhalt von Zelle A1 an jedem Komma und verteilt die Werte auf mehrere Zellen in einer Reihe.

Um eine eindeutige Liste zu erstellen, kannst du dann die EINDEUTIG-Funktion verwenden:

=EINDEUTIG(B1:B100)

Diese Formel nimmt die Werte aus dem Bereich B1 bis B100 (der Bereich, in den die getrennten Werte verteilt wurden) und erstellt eine neue Liste eindeutiger Werte.

Wenn du keine Zugriff auf die EINDEUTIG-Funktion hast, kannst du stattdessen den "Erweiterten Filter" oder ein VBA-Skript verwenden, um Duplikate zu entfernen.


Anwendungsbeispiele aus der Praxis


  • Datenbereinigung: Umwandlung von Daten aus einer Umfrage oder einem Formular in eine eindeutige Liste von Optionen.
  • Datenanalyse: Erstellung einer Liste eindeutiger Werte für die weitere Analyse oder für Pivot-Tabellen.

Tipps


  • Wenn du die TEILEN-Funktion verwendest, achte darauf, dass genügend leere Zellen rechts von der Ursprungszelle vorhanden sind, damit die geteilten Werte Platz finden.
  • Verwende die Funktion WECHSELN, um zusätzliche Leerzeichen zu entfernen, die nach dem Trennen der Texte entstehen können.

Verwandte Themenbereiche


  • Textfunktionen in Excel
  • Datenbereinigung
  • Duplikate entfernen

Zusammenfassung


Das Trennen von Texten in einer Zelle und das Erstellen einer eindeutigen Liste ist ein zweistufiger Prozess in Excel, der mit eingebauten Funktionen wie TEILEN und EINDEUTIG oder mit Werkzeugen wie dem "Erweiterten Filter" durchgeführt werden kann. Diese Techniken sind nützlich für die Datenbereinigung und -analyse und können helfen, die Datenqualität in deinen Excel-Projekten zu verbessern.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige