Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1896to1900
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

Matrix - Werte trennen und auflisten

Matrix - Werte trennen und auflisten
09.09.2022 18:11:43
Ben
Hallo Cracks
Ich hab eine "für mich" etwas komplexe Fragestellung:
Aktuelle Auflistung:
A B
=1 WertA
=2 WertB;WertC
=3 WertD
=4 WertF;WertG;WertH;WertI
Mein Zielauflistung:
A B
=1 WertA
=2 WertB
=2 WertC
=3 WertD
=4 WertF
=4 WertG
=4 WertH
=4 WertI
Das ganze natürlich dynamisch.
Die aktuellen Werte werden bereits durch eine Formel ermittelt:
Für A1:

="="&WENN(ZEILE(SHEET2!A1)> ANZAHL2(TABELLE[SPALTE1]); "";INDEX(SHEET2!A:A; KKLEINSTE(WENN((TABELLE[SPALTE1]0);
ZEILE(TABELLE[SPALTE1])); ZEILE(A1))))
Für B1:

="="&WENN(ZEILE(SHEET2!A1)> ANZAHL2(TABELLE[SPALTE1]); "";INDEX(SHEET2!B:B; KKLEINSTE(WENN((TABELLE[SPALTE1]0);
ZEILE(TABELLE[SPALTE1])); ZEILE(A1))))
Das zieh ich dann jeweils runter, aktuell sinds 2000 Quellwerte, werden aber ca. 20'000 werden.
Die Quelltabelle im Sheet2 sieht so aus:
A B
1 WertA
0 Wert Y
2 WertB;WertC
0 WertX
3 WertD
.....Wert Z
4 WertF;WertG;WertH;WertI
Ich benötige also die Matrix-Formel für das lückenlose Auflisten (in Spalte A und B) erweitert um das Erkennen der Semikolons, Split auf mehrere Zeilen und ergänzen mit dem jeweils identischen Wert aus Spalte A. Aktuell sind es maximal 4 Werte in der Spalte B, könnten aber 1-N sein.
Das Ganze ist Bestandteil einer Monster-Arbeitsmappe, hier halt stark vereinfacht dargestellt. Spalten und andere "Umwege" sind nicht so einfach zu implementieren.
Deshalb suche ich nach einer Lösung via Einzelformel.
VBA würd ich wohl hinkriegen, aber ich würds lieber nativ halten.
Mag da jemand mithelfen?
Danke und Grüsse
Ben

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Matrix - Werte trennen und auflisten
09.09.2022 18:33:55
onur
Dann solltest du mal eine (Beispiels-) Datei posten, damit wir das nicht erstellen müssen, nur um dir helfen zu können.
AW: Matrix - Werte trennen und auflisten
09.09.2022 19:11:08
Daniel
Hi
ohne VBA wird da nicht viel gehen.
schreibe mal diesen Code in ein allgmeines Modul:

Function Test(Quelle As Range) As Variant
Dim arr
Dim Erg
Dim z As Long
Dim zE As Long
Dim TeilTexte1, TeilTexte2
Dim T
Dim strA As String, strB As String
Dim Zähler As Long
arr = Intersect(Quelle, Quelle.Worksheet.UsedRange).Value
For z = 1 To UBound(arr, 1)
If arr(z, 1)  0 Then
TeilTexte1 = Split(arr(z, 2), ";")
For T = 0 To UBound(TeilTexte1)
Zähler = Zähler + 1
strA = strA & ";" & arr(z, 1)
strB = strB & ";" & TeilTexte1(T)
Next
End If
Next
ReDim Erg(1 To Zähler, 1 To 2)
TeilTexte1 = Split(strA, ";")
TeilTexte2 = Split(strB, ";")
For z = 1 To Zähler
If IsNumeric(TeilTexte1(z)) Then
Erg(z, 1) = CDbl(TeilTexte1(z))
Else
Erg(z, 1) = TeilTexte1(z)
End If
If IsNumeric(TeilTexte2(z)) Then
Erg(z, 2) = CDbl(TeilTexte2(z))
Else
Erg(z, 2) = TeilTexte2(z)
End If
Next
Test = Erg
End Function
markiere dann soviele Zellen wie du glaubst für die Ausgabe des Ergebnisses zu benötigen (also mindestes 2 Spalten, Zeilen musst du abschätzen)
gib dann die Formel ein: =Test(Sheet2!A:B) und schließe die Eingabe mit STRG+SHIFT+ENTER ab.
wenn am unteren Ende der #NV-Fehler als Ergebnis erscheint, hast du alle Werte in der Ausgabe.
Erscheint er nicht, hast du wahrscheinlich zu wenige Zellen beim Eingeben der Formel markiert.
Gruß Daniel
Anzeige
AW: Matrix - Werte trennen und auflisten
09.09.2022 19:58:45
Ben
Hey Daniel
Danke dir für den Code. Das wär auch ne nette Lösung, leider krieg ich aktuell grad nur #NAME! in allen Zellen. Ich krieg also die Funktion irgendwie nicht gegriffen. Stell aber gerade auch fest, das meine Company die Einstellung "Zugriff aufs VBA Projektmodell" deaktiviert hat.
Ich werde das also mal extern testen müssen. Würd mich aber nicht wundern, wenn ich die Funktion nicht verwenden darf. Wobei ich aber nicht weiss, obs da überhaupt einen Zusammenhang gibt?
Deine Schritte habe ich befolgt:
Code in den Allgemeinbereich von SHEET1.
Funktionsaufruf in A2, A2 - B2 markiert und Shift-+Enter.
Bringt mir A2-B20 gefüllt mit #NAME
Ich danke dir aber für den Input. Der Code sieht gut aus, wenn ichs schaffe die Funktion anzusteuern, wäre das sicher der QuickWin.
Grüsse
Ben
Anzeige
AW: Matrix - Werte trennen und auflisten
09.09.2022 19:59:23
Ben
A2-B20 natürlich.. nicht B2....
AW: Matrix - Werte trennen und auflisten
09.09.2022 20:26:15
Daniel
bei Excel-gut gehe ich davon aus, dass du weißt, wo du Code einfügen musst.
es gibt keinen "Allgmein-Bereich" von Sheet 1.
der Code muss in ein allgemeines Modul der Mappe (Modul1)
dann kannst du die Funktion in einer Formel in einer Excelzelle verwenden, sofern ihr VBA einsetzen dürft.
Gruß Daniel
AW: Matrix - Werte trennen und auflisten
09.09.2022 21:18:42
Ben
Punkt für dich (-; Das mit dem Modul hätte mir auffallen können.
Gut im Sinne von: Ich konnte den Code an meine Bedürfnisse anpassen. Das ist grossartig, ich danke dir - dieses Problem ist gelöst.
Big Up.
Ich wünsche ein schönes Wochenende und Grüsse
Ben
Anzeige
Power Query, eindeutig
09.09.2022 23:28:32
Yal
Hallo Ben,
_ markiere dein Bereich aus Spalte A & B
_ Drücker Strg+t (oder Menü "Einfügen", "Tabelle")
_ in deiner Beschrebung gibt es keine Überschrift. Es wird sich automatisch "Spalte1" und "Spalte2" einfügen
_ im Menü "Daten", ""Aus Tabelle" klicken
_ Du bist im Power Query
_ rechtklicke im Kopfbereich der Spalte2 und wähle "Spalten teilen", "Nach Trennzeichen..." (geht auch über Rechtsklick)
_ Semikolon als Trennzeichen auswählen
_ "Spalte1" markieren,
_ im Menü "Transformieren", "Spalten entpivotieren", "andere Spalten entpivotieren"
_ Spalte "Attribute" entfernen (Rechtklick im Kopfbereich)
_ Schliessen & laden
Fertig.
VG
Yal
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige