Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

mehrere gleiche Zellen in Spalten anordnen
#1
Hallo Leute,

ich habe eine Datei exportiert, die ich weiterverarbeiten muss.
Die Daten sind so angeordnet:

Code:
Spalte A    Spalte B
Name-Datensatz1    Wert1-Name-Datensatz1
Name-Datensatz1    Wert2-Name-Datensatz1
Name-Datensatz1    Wert3-Name-Datensatz1
Name-Datensatz1    Wert4-Name-Datensatz1
Name-Datensatz2    Wert1-Name-Datensatz2
Name-Datensatz2    Wert2-Name-Datensatz2
Name-Datensatz2    Wert3-Name-Datensatz2
Name-Datensatz2    Wert4-Name-Datensatz2
Name-Datensatz2    Wert5-Name-Datensatz2
Name-Datensatz3    Wert1-Name-Datensatz3
Name-Datensatz3    Wert2-Name-Datensatz3
Name-Datensatz4    Wert1-Name-Datensatz4
Name-Datensatz4    Wert2-Name-Datensatz4
Name-Datensatz4    Wert3-Name-Datensatz4

Die Anzahl der selben Datensätze variieren von 1 bis 16 je nachdem... Ziel ist folgende Anordnung:

Code:
Name-Datensatz1    Wert1-Name-Datensatz1    Wert2-Name-Datensatz1    Wert3-Name-Datensatz1    Wert4-Name-Datensatz1    
Name-Datensatz2    Wert1-Name-Datensatz2    Wert2-Name-Datensatz2    Wert3-Name-Datensatz2    Wert4-Name-Datensatz2    Wert5-Name-Datensatz2
Name-Datensatz3    Wert1-Name-Datensatz3    Wert2-Name-Datensatz3            
Name-Datensatz4    Wert1-Name-Datensatz4    Wert2-Name-Datensatz4    Wert3-Name-Datensatz4

Also nur eine Zeile pro Datensatz, aber alle Werte in Spalte B sollen in eine eigene Spalte wandern.

Pivot wäre ja beim "Drehen" von Zeilen in Spalten das richige, aber hier kommt bei mir nur folgendes raus:

Code:
Zeilenbeschriftungen    Wert1-Name-Datensatz1    Wert1-Name-Datensatz2    Wert1-Name-Datensatz3    Wert1-Name-Datensatz4    Wert2-Name-Datensatz1    Wert2-Name-Datensatz2    Wert2-Name-Datensatz3    Wert2-Name-Datensatz4    Wert3-Name-Datensatz1    Wert3-Name-Datensatz2
Name-Datensatz1                                        
Name-Datensatz2                                        
Name-Datensatz3                                        
Name-Datensatz4

Gibt es da noch andere Einstellungen bei Pivot, die ich übersehen habe?
Komme irgendwie nicht weiter :16:

und freue mich auf eure Hilfe :05:

Liebe Grüße,
matt1
Antworten Top
#2
Hi Matt,

lies mal deinen anderen Thread. Ich habe dir dort etwas geschrieben, was auch auf dieses Problem zutrifft.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Hi Günter,

Danke, dass du mich darauf aufmerksam machst, hier dachte ich eigentlich, dass es gut geschildert ist.
Anbei nun ein Auszug der Excel-Datei, die ich wie oben beschrieben bearbeiten muss.

Bitte um Nachsehen, wenn die Fragestellung nicht ausreichend beschrieben ist, bin da ganz neu dabei Angel 

Bei Fragen oder Anregung, um es besser zu erklären, einfach melden. 

Liebe Grüße,
matt1


Angehängte Dateien
.xlsx   Products.xlsx (Größe: 9,9 KB / Downloads: 4)
Antworten Top
#4
Hallo,

bezogen auf dein erstes Posting könnte man, wenn das nicht übermäßig viele Datensätze sind, mit einer Matrixformel arbeiten:
Arbeitsblatt mit dem Namen 'Tabelle1'
CDEFG
1Name-Datensatz1Wert1-Name-Datensatz1Wert2-Name-Datensatz1Wert3-Name-Datensatz1Wert4-Name-Datensatz1
2Name-Datensatz2Wert1-Name-Datensatz2Wert2-Name-Datensatz2Wert3-Name-Datensatz2Wert4-Name-Datensatz2
3Name-Datensatz3Wert1-Name-Datensatz3Wert2-Name-Datensatz3
4Name-Datensatz4Wert1-Name-Datensatz4Wert2-Name-Datensatz4Wert3-Name-Datensatz4

ZelleFormel
D1{=WENN(SPALTE(A$1:A1)>ZÄHLENWENN($A:$A;$C1);"";INDEX($B:$B;KKLEINSTE(WENN($A$1:$A$21=$C1;ZEILE($1:$21));SPALTE(A1))))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.

Ich habe zuerst die Spalte A in die Spalte C kopiert und dort mit Duplikate entfernen die doppelten Werte entfernt. Anschließend die Formel in D1 kopiert und nach rechts bzw. nach unten kopiert. Beachte bitte, dass es sich bei der Formel um eine Matrixformel handelt die mit Strg-Shift-Enter abgeschlossen werden muss.

Die Matrix erfordert einiges an Rechenleistung und ist bei sehr großen Datenmengen nicht zu empfehlen.

Ich könnte mir gut vorstellen, dass das auch mit PowerQuery sehr gut zu lösen ist, aber da gibt es Spezialisten hier im Forum denen das leichter fällt als mir.

Nachtrag: Ich gerade die Beispielsdatei gesehen und heruntergeladen. Du könntest mal den folgenden VBA-Code probieren - zumindest auf den ersten Blick scheint der genau das zu machen was du dir vorstellst:

Code:
Public Sub Aufteilung_in_neue_Zelle()
'Code für ein allgemeines Modul
'*********************************
'Autor: Jürgen Hennekes
'*********************************
Dim DicScr As Object
Dim lngZQ As Long
Dim lngZZ As Long
Dim intS As Integer

Set DicScr = CreateObject("Scripting.Dictionary")
'intS = 5

For lngZQ = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  If DicScr.exists(Cells(lngZQ, 1).Value) = False Then
    DicScr.Add Cells(lngZQ, 1).Value, lngZQ
    lngZZ = lngZZ + 1
    intS = 5
      Cells(lngZZ, 4).Value = Cells(lngZQ, 1).Value
      Cells(lngZZ, 5).Value = Cells(lngZQ, 2).Value
        Else
      intS = intS + 1
      Cells(lngZZ, intS).Value = Cells(lngZQ, 2).Value
  End If
Next
End Sub

Allerdings kann ich dir bei einer evtl. notwendigen Anpassung mangels eigener VBA-Kenntnisse nicht weiterhelfen.

Der Code gehört in ein allgemeines Modul der Datei und kann mit Alt-F8 aufgerufen werden.
Gruß
Peter
Antworten Top
#5
Gut, dass die Datei anhängt. So kann man sehen, dass Dein Begehr unsinnig ist:

Code:
0 1 2 3 4 5 6 7 8 9 0
A x x
B     x x x x x x
C                 x x

Jede Spalte hat doch dann die eigene Überschrift.

Oder: Du willst für jeden Artikel die Unterartikel nach rechts führen. Dann halt wie in der anhängenden Datei (ohne Matrixfml, unbegrenzte Menge möglich, schnell):

.xlsx   Products.xlsx (Größe: 12,44 KB / Downloads: 3)
Antworten Top
#6
Hallo matt1,

oder mit Pivot und einer Hilfsspalte.

http://www.clever-excel-forum.de/thread-15137.html
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.





Antworten Top
#7
Rainbow 
Ich danke euch Leute! Richtig viele Möglichkeiten sehr schnell erhalten Sleepy

Problem gelöst par excellance. Die Matrix-Formel geht übrigens super - vorausgesetzt man hat keine Spaltenüberschriften oder fügt diese später hinzu.

Schönes Wochenende und liebe Grüße,
matt1
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: