:16: Haha, ja klar - der erste hat ja nur ein Ergebnis
FUNKTIONIERT! Merci.
Naja als Formel hätt ich mir jetzt in sofern beholfen, dass ich (da die Ergebnisse ja bis max. 30 Eigenschaften / Produkt überschaubar sind) die fertige Formel einfach bis Zeile +30 rübergezogen und dann wie folgt zusammengefasst (verkürzt hier in Spalte J dargestellt)
Hätte dann in Spalte K mir die Formel als Werte angezeigt gelassen und dann per "Suchen und Ersetzen" alle ";;" mit "" ersetzt (also nichts). Bei den ungeraden, bei denen am Ende dann dennoch ein ";" stehen bleibt - komme ich für mein Ergebnis zurecht.
(07.03.2017, 16:07)Ego schrieb: ps. Sorry, hatte die "30" nicht wahrgenommen. Trotzdem würde ich VBA empfehlen. Die Formel überprüpft für jede Zelle (030*maximale Anzahl der Artikel) die gesamte Liste.
Gibt es da etwas was ich "variabel" für solch eine Liste einsetzen kann? Variabel im Sinne von wenn es mal nicht 30 sonder 45 sind?
Und wie gesagt: VBA kann ich gerade einmal so ausschreiben... :s
07.03.2017, 17:16 (Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2017, 17:16 von Ego.)
Hallo Olli,
In der Anlage einmal eine VBA-Lösung.
Das Programm erwartet eine sortierte Liste und zwei benannte Zellen:
a) "Liste" = Start der Liste b) "Ausgabe" = Start der Ausgabe
durch die Namensvergabe kannst du diese Zellen beliebig in der Arbeitsmappe positionieren. Es werden aber gnadenlos alle Zellen unter der Zelle Ausgabe und direkt daneben überschrieben.
Falls eine neue Datenversion ein kürzere Ergebnisliste liefert (oder besser immer) vor dem Aufruf den Ausgabebereich löschen.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:1 Nutzer sagt Danke an Ego für diesen Beitrag 28 • derOlli
Äh ich weiß jetzt gar nicht was ich sagen soll? :19: :05:
Dat geht doch nicht mit rechten Dingen zu :21: Zauberei
Macht es für mich als Newbie Sinn, nach der Funktionsweise zu fragen oder lieber einfach so hinnehmen und freuen ? Kann man das "ohne großes Ding" irgendwie erlernen? Oder ist hier Kurse besuchen, Bücher lesen und Jahrelanges Wissen die Basis dazu?
Sub mach_wieder() Dim i As Long, j As Long Dim lngZ As Long
Dim arr As Variant Dim varK Dim D1 As Object Set D1 = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
With Worksheets("Tabelle1") lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row arr = .Range("A2:B" & lngZ) For i = 1 To UBound(arr) D1(arr(i, 1)) = D1(arr(i, 1)) & "," & arr(i, 2) Next i Range("D2").CurrentRegion.Offset(1, 0).Resize(, Range("D2").CurrentRegion.Columns.Count).ClearContents For Each varK In D1.Keys .Cells(j + 1, 4) = varK .Cells(j + 1, 5) = Mid(D1(varK), 2) j = j + 1 Next End With
End Sub
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28 • derOlli
08.03.2017, 09:48 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2017, 09:48 von derOlli.)
Guten Morgen Zusammen,
@ Atilla: das füge ich dann als Modul ein? Das würde ich noch hinbekommen. Aber, was muss ich danach machen? Sorry
@ Ego: Kannst Du Dir bitte die Liste nochmals anbei anschauen? Das Ergebnis stellt sich falsch dar - wahrscheinlich weil hier der Fall der Fälle ist und die Datensätze / Artikel nicht 30, sondern 43 beträgt? Kann man das pauschal auf 100 setzen? Dann wäre ich fein raus für künftige Listen.
Danke euch vielmals.
Edit: Bei Eigenschaften <=30 funktioniert es und es zeigt mir die Eigenschaften schön separiert mit Komma an...