ich hoffe, dass mir wieder so gut weitergeholfen werden kann.
Folgende Ausgangslage:
In einer Zelle stehen mehrere Werte untereinander (Zeilenumbruch), wobei jede Zeile in dieser Zelle, einen Datensatz aus mehreren Werten darstellt:
-> Beispiel für Zelle A1 (wobei A:1 ein kompletter Datensatz ist) A:1 B:2 C:3 D:4
Jetzt sollen zwei Sachen erreicht werden.
1. Die Werte einer Zelle sollen getrennt werden und untereinander ausgegeben werden (je Datensatz eine Zeile) 2. Der Datensatz einer Zeile soll getrennt werden und nebeneinander dargestellt werden
-> Beispiel für Zelle A1 und A2 A 1
-> Beispiel für Zelle B1 und B2 B 2 usw.
Der "Trick" mit Alt+010 "Text in Spalten" und danach die Daten transponieren und nochmal Text in Spalten und den Doppelpunkt als Trennzeichen, ist leider für mich nicht anwendbar, da ich sehr viele Daten auf diese Weise bearbeiten muss.
Richtig geil wäre eine Lösung, die in meine Tabelle automatisch die richtige Anzahl an Zeilen einfügt. Sprich: Wenn in meiner Ausgangstabelle in Zeile A1 3 Werte stehen und in Zelle A2 5 Werte und Zelle A3 4 Werte, dann sollten unter A1 zwei Zeilen eingefügt werden, unter A2 (bzw dann A4) wieder 4 Zeilen usw. Wobei es auch reichen würde, wenn die "neuen" Daten ans Ende der Tabelle geschrieben werden.
das glaube ich nicht, dass er das so einfach meint. Denn dann würde TiS reichen. Aber gerade das hat er ausgeschlossen. Warten wir also ab, wie sein Beispiel aussehen wird. Wäre natürlich klug, in das Beispiel auch ein Wunschergebnis einzutragen.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Text in Spalten reicht wohl nicht, weil dem TA zu viele Daten in einer "Zeile" stehen. Hast Du übrigens schon mal probiert, so eine Zelle mit ALT+ENTER als Zeilenumbruch mit Text in Spalten zu trennen? Wenn nicht, dann mach mal
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Sub TransponierenSpezial() Dim rngB As Range Dim varQ As Variant Dim varT As Variant Dim varZ As Variant Dim i As Long, j As Long Set rngB = Cells(1) varQ = rngB.CurrentRegion.Value ReDim varZ(1 To 1, 0 To 0) As Variant For i = 1 To UBound(varQ) varT = Split(varQ(i, 1), Chr(10)) ReDim Preserve varZ(1 To 1, 1 To UBound(varZ, 2) + UBound(varT) + 1) For j = 0 To UBound(varT) varZ(1, UBound(varZ, 2) - UBound(varT) + j) = varT(j) Next j Next i rngB.Resize(UBound(varZ, 2)).Value = Application.Transpose(varZ) End Sub
26.02.2019, 12:26 (Dieser Beitrag wurde zuletzt bearbeitet: 26.02.2019, 12:26 von YungKafa.)
Hallo,
ja, ich könnte es mit Text in Spalten machen, aber dann muss ich alles manuell machen, was mich leider nicht weiterbringt. Zudem brauche ich die Werte auch untereinander und nicht in Spalten. Nur für den zweiten Schritt, den Datensatz aufzutrennen, kommt diese Funktion in Frage. Ich suche nach einer automatisierbaren Lösung.
Verstehe nicht, weshalb meine Beispieltabelle nicht ausreichend sein soll? Bei meinen echten Daten wird das "A" einfach durch eine 8-stellige Zeichenkombination ersetzt, dann ein Doppelpunkt und dann eine Zahl. Genau wie in meinen Bespiel, das ändert aber nichts an der Ausgangslage.