Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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

Text Konsolidieren

Text Konsolidieren
09.12.2021 11:46:29
Abdullah
Hallo zusammen,
ich versuche seit Stunden eine große menge an Daten zu verdichten. Konnte jemand bitte dabei helfen ?
in folgenden Bild ist ein Beispiel der aktuellen Lage der Daten
Userbild
die gewünschte Sortierung wäre dann in der folgenden Form.
Userbild
Beste Grüße
Abdullah

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text Konsolidieren
09.12.2021 15:04:58
Yal
Hallo Abdullah,
ich habe zuerst mit Power Query versucht, komme aber -zuerst- auf keinem Ergebnis.
Daher zur Not mit VBA:
_ wir befüllen einen Sammler. Die Schlüsseln des Sammlers sind die Text in Spalte A. Die verschiedenen Einträge werden als Textkette mit Semikolon gesammelt.
_ wir gehen den Sammler durch, der Schlüssel kommt als Überschrift, die Elemente sind die einzelne Teile des gesplitteten Textes.

Sub Gesammelt_transponieren()
Dim Z As Range 'Zelle
Dim D As Object
Dim K, Elt  'Key und Element
Const TS = "E4" 'Türstopper für den End(xlToLeft). Zelle muss leer sein
Set D = CreateObject("Scripting.Dictionary")
With Worksheets("Tabelle1")
'Sammeln
For Each Z In .Range(.Range("A5"), .Range("A9999").End(xlUp)).Cells
If D.exists(Z.Value) Then
D(Z.Value) = D(Z.Value) & ";" & Z.Offset(0, 1).Value
Else
D(Z.Value) = Z.Offset(0, 1).Value
End If
Next
'Ausgeben
.Range(TS) = "x" 'Türstopper setzen
For Each K In D.Keys
Set Z = .Range(TS).Offset(0, 1000).End(xlToLeft).Offset(0, 1)
Z = K
For Each Elt In Split(D(K), ";")
Set Z = Z.Offset(1, 0)
Z = Elt
Next
Next
.Range(TS).ClearContents 'Türstopper wieder löschen
End With
End Sub
VG
Yal
Anzeige
Einzelpivotierung mit Power Query
09.12.2021 19:55:45
Yal
Hallo Abdullah,
um das gleiche Ergebnis mit Power Query (PQ) zu erreichen:
(Wobei Du mit Excel 2007 PQ nachinstallieren müsste. Aber es gibt ja jetzt Excel 2021! Fährst Du eine 14 Jahre alte Auto?)
_ mache aus dein Tabelle eine aktive Tabelle: eine Zelle davon auswählen und Strg+t oder "Einfügen", "Tabelle". Wenn deine Liste keine Überschrift hat, wird einigen eingefügt: "Spalte1", "Spalte2", ... Nehmen wir einfach an, die erste heisst "Loeten", die zweite "Los".
_ im Menü "Daten", "Aus Tabelle"
jetzt bist Du im PQ Editor
_ markiere die erste Spalte "Loeten"
_ im Menü "Transformieren", "Gruppieren nach" auswählen
_ "Gruppieren nach" ist schon festgelegt, Name der neuen Spalte: "GroupIndex", Vorgang "Alle Zeilen", ok.
_ gehe auf "Start", "erweiterte Editor"
_ füge dort nach der letzten Zeiel vor dem "in": Indexed = Table.TransformColumns(#"Gruppierte Zeilen", {{"GroupIndex", each Table.AddIndexColumn(_,"GroupIndex", 1, 1)}})
_ füge eine Komma am Ende der Zeile davor
_ nach dem "in" soll noch '#"Gruppierte Zeilen" ' stehen, ersetze duch Indexed (achtung: Case sensitiv)
_ Fertig
_ in der Spaltenüberschrift von GroupIndex auf dem doppelte Pfeil drücken, Spalten "Los" und "GroupIndex" auswählen
_ Spalte "Loeten" markieren,
_ im "Transformieren" auf "Spalte pivotieren" gehen,
_ Wertespalte "Los" auswählen, "Erweiterte Funktion" auf "nicht aggregieren" stellen (wobei es sollte hier keine wirkung haben),
_ Spalte "GroupIndex" entfernen
_ Im Menü "Datei", "Schliessen und laden in"
Fertig.
Kommt eine neue Werte unter die bisherige Liste, wird sich die Aktive Tabelle automatisch erweitern. Auf das Ergebnis-Tabelle musst Du nur noch rechtsklicken und "aktualisieren" wählen.
Kommen diese Werte aus eine csv-Datei, ist es noch schöner. Aber da schaust Dir am besten ein paar Tutorial an.
Power Query ist leichter zu erfassen und anzupassen, stabiler und bei grossen Listen schneller als VBA. Davon ausgesehen mögen macnhe Firmen keine Datei "mit Makros".
VG
Yal
Anzeige
AW: für XL2007 gibt es PQ nicht owT
09.12.2021 20:08:34
neopa
Gruß Werner
.. , - ...
AW: für XL2007 gibt es PQ nicht
09.12.2021 20:38:05
Yal
Hallo Werner,
habe ich mir gedacht.
Na jut, ich wollte trotzdem diese Nuss mit PQ rangehen. Nur zum Spass.
Es ist so ein Ding beim "Helfen": man macht das gesamt meistens für das eigene Vergnügung. Aber einfache Sachen sind langweilig, interessante eher selten.
Ich habe dein Thema über die Verkettung ohne Wiederholung übrigens immer noch nicht aus dem Kopf, arbeite aber nicht aktiv dran.
VG
Yal
AW: sehe es eher sportlich ...
10.12.2021 10:24:07
neopa
Hallo Yal,
... ich möchte meine grauen Gehirnzellen einigermaßen fit halten und dazu gehört nun mal Training und wieder Training.
Natürlich freut es mich, wenn ich dabei ab und zu mal einen Beitrag beisteuern kann, mit dem ich selbst zufrieden bin und natürlich freue ich mich dann auch über den Dank dessen, welche/r auch etwas davon hatte.
Nun zum Thema über die "Verkettung ohne Wiederholung". Hmm. Nun da zeigt sich mir leider wieder, dass mein Gedächtnis zumindest nicht mehr optimal arbeitet. Ich kann mich wirklich nicht mehr daran erinnern. Kannst Du mein Gedächtnis wieder etwas aufhellen?
Gruß Werner
.. , - ...
Anzeige
OT: hab's wieder gefunden
10.12.2021 14:40:33
Yal
Hallo Werner,
https://www.herber.de/forum/archiv/1832to1836/1833880_sehr_spez_FormelPQLoesung_gesucht.html
Es ging darum Element (mit Kategorie oder "Familie") zu verketten, sodass die Nachbarschaft zwischen 2 Kategorien sich so wenig wie möglich wiederholt.
Vielleicht ist es mir in den ruhigen Jahresendphase so ruhig, dass ich das nochmal in der Hand nehme. Wohl wissend, dass es wahrscheinlich inzwischen nicht mehr brauchst.
VG
Yal
AW: OT: hab mich nun auch wieder erinnert ...
10.12.2021 15:33:05
neopa
Hallo Yal,
... ich hatte damit vor Monaten einen Bekannten bei (s)einem sehr spez. Problem helfen wollen. Nach meiner damaligen abschließenden Meinung sah ich für mich keinen Weg, wie es einer idealen Lösung zugeführt werden kann. Bewusst war mir nur, dass man da sicher noch optimieren kann, aber der Bekannte war erst einmal froh überhaupt einen, seiner Meinung nach ausreichenden Vorschlag, bekommen zu haben. Dieser erschien für ihn geeigneter, als womit er bisher das Problem angepackt hatte. Er hat sich dann auch nicht wieder gemeldet und dann war es für mich: "Aus dem Auge aus dem Sinn".
Also wenn es Dich noch/wieder interessieren sollte und Du in den letzten Tages des Jahres wirklich nicht besseres vorhast, dann würde mich eine bessere Lösung natürlich auch wieder interessieren.
Wünsche Dir nun aber erst einmal einen schönen 3. Advent.
Gruß Werner
.. , - ...
Anzeige
AW: Text Konsolidieren
10.12.2021 10:57:34
Daniel
Hi
von Hand mit folgenden Schritten:
1. in Zelle C5 diese Formel und nach unten ziehen: =B5&Wenn(A5=A6;";"&C6;"")
2. Spalte C kopieren und als Wert einfügen
3. DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN auf die Spalten A:C anwenden mit der Spalte A als Kriterium
4. DATEN - DATENTOOLS - TEXT IN SPALTEN auf die Spalte C anwenden mit dem Semikolon als Trennzeichen
5. Spalte B löschen
6. den ganzen Zellbereich, der bei Text in Spalten entstanden ist, kopieren und mit der Option TRANSPONIEREN an anderer Stelle einfügen.
als Makro so:

Sub test()
With Range("A5").CurrentRegion
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=RC2&IF(RC1=R[1]C1,"";""&R[1]C,"""")"
.Copy
.PasteSpecial xlPasteValues
End With
End With
With Range("A5").CurrentRegion
.RemoveDuplicates 1, xlNo
.Columns(3).TextToColumns Destination:=.Cells(1, 3), _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False
.Columns(2).Delete shift:=xlToLeft
End With
Range("A5").CurrentRegion.Copy
Sheets("Tabelle2").Range("A1").PasteSpecial xlPasteAll, Transpose:=True
Application.CutCopyMode = False
End Sub
Gruß Daniel
Anzeige
AW: Text Konsolidieren
10.12.2021 14:50:29
Yal
@Daniel: nice! Man braucht ein Bischen Vorstellungsvermögen, um aus der Beschreibung die Lösung zu sehen, aber auf der Idee muss man kommen.
Nur eins: zwar ist es im Abdullahs Beispiel schon sortiert, aber wenn nicht -oder sicherheitshabler immer-, sollte vorher die Spalte A sortiert werden.
Sonst greift den A5=A6 meistens ins Leer.
@Abdullah: Rückmeldung wäre nett. Ich hoffe, Du hast keine Fantasie-Mailadresse eingegeben, sonst können wir lang auf einem Lebenszeichen warten...
VG
Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige