Clever-Excel-Forum

Normale Version: Zeilen in eine Spalte transponieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich weiß nicht wie ich es schaffen soll, die Daten in den Zeilen in zwei Spalte unter einander zu tranponieren, wobei der erste wert sich immer wieder so oft wieder holt wieviele Eintrage die Zeile hat.
Schiwerig zu erklären, ich versuch mal so:


Meine Daten sehen im Moment so aus:
Code:
--------------------------------------------------------------
Brot        | Butter | Schinken   |        |         |       |
--------------------------------------------------------------
Steak       | Bohnen | Kartoffeln |  Salat |         |       |
--------------------------------------------------------------
Pfannkuchen | Zimt   | Zucker     | Muß    | Nutella | Sahne |
--------------------------------------------------------------


Und ich hätte sie gerne so:
Code:
--------------------------
Brot        | Butter     |
--------------------------
Brot        | Schinken   |
--------------------------
Steak       | Bohnen     |
--------------------------
Steak       | Kartoffeln |
--------------------------
Steak       | Salat      |
--------------------------
Pfannkuchen | Zimt       |
--------------------------
Pfannkuchen | Zucker     |
--------------------------
Pfannkuchen | Muß        |
--------------------------
Pfannkuchen | Nutella    |
--------------------------
Pfannkuchen | Sahne      |
--------------------------

Wie würdet ihr sowas realisieren?

Hab auch schon mit Pivot herum experimentiert, aber ohne ausreichende Ergebnisse... Undecided


Grüße

mohi
Hallo,

unter Transponieren verstehe ich etwas anderes:

Tabelle1

ABC
2Brot        Steak       Pfannkuchen
3 Butter Bohnen Zimt  
4 Schinken   Kartoffeln Zucker    
5          Salat Muß    
6                 Nutella
7             Sahne

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
wenn ich das Problem manuell lösen müsste dann mit der Transponieren funktion bei Inhalte einfügen.
Ist etwas schwer zu erklären..

Die erste Zelle einer Zeile ist die Zutat, die Zellen danach der Gericht.
Jetzt würde ich gerne wissen welche Zutaten allles in z.B. Schnitzel (Gericht) ist....


Die Daten sehen so aus:
Code:
------------------------------------------------------------
Zutaten  | Gericht 1 | Gericht 2 | Gericht 3 | Gericht 4   |
------------------------------------------------------------
Salz     | Brot      | Burger    | Schnitzel | Pfannkuchen |
------------------------------------------------------------
Pfeffer  |           | Burger    | Schnitzel |             |
------------------------------------------------------------
Mehl     | Brot      |           | Schnitzel |             |
------------------------------------------------------------
Wasser   | Brot      |           |           | Pfannkuchen |
------------------------------------------------------------
Hefe     | Brot      |           |           |             |
------------------------------------------------------------
Fleich   |           | Burger    |           |             |
------------------------------------------------------------
Geflügel |           |           | Schnitzel |             |
------------------------------------------------------------
Ei       |           |           | Schnitzel | Pfannkuchen |
------------------------------------------------------------


Damit ich sehen kann was alles ein Schnitzel braucht, müssten die DAten so aussehen:
Code:
| Zutaten   | Gericht     |
| Salz      | Brot        |
| Pfeffer   |             |
| Mehl      | Brot        |
| Wasser    | Brot        |
| Hefe      | Brot        |
| Fleich    |             |
| Geflügel  |             |
| Ei        |             |
| Salz      | Burger      |
| Pfeffer   | Burger      |
| Mehl      |             |
| Wasser    |             |
| Hefe      |             |
| Fleich    | Burger      |
| Geflügel  |             |
| Ei        |             |
| Salz      | Schnitzel   |
| Pfeffer   | Schnitzel   |
| Mehl      | Schnitzel   |
| Wasser    |             |
| Hefe      |             |
| Fleich    |             |
| Geflügel  | Schnitzel   |
| Ei        | Schnitzel   |
| Salz      | Pfannkuchen |
| Pfeffer   |             |
| Mehl      |             |
| Wasser    | Pfannkuchen |
| Hefe      |             |
| Fleich    |             |
| Geflügel  |             |
| Ei        | Pfannkuchen |
---------------------------


Wenn ich nun nach Schnitzel filtere sieht es so aus:
Code:
| Zutaten  | Gericht   |
------------------------
| Salz     | Schnitzel |
| Pfeffer  | Schnitzel |
| Mehl     | Schnitzel |
| Geflügel | Schnitzel |
| Ei       | Schnitzel |



Oder anders, wenn ich wissen will wo überall Wasser ist, dann so:
Code:
| Zutaten   | Gericht      |
----------------------------
| Wasser    | Brot         |
| Wasser    |              |
| Wasser    |              |
| Wasser    | Pfannkuchen  |
Moin

Importiere die Daten nach Power Query.
Selektiere die erste Spalte.
Rechtsklick: andere Spalten entpivotieren.
Die überflüssige Spalte löschen und das Ergebnis in das Tabellenblatt laden.
Muss ich mal ausprobieren, hab das add one nicht.

Danke für den Tip mit Power Query, ich werds versuchen...
Hi,

du gibst in deinem Profil an, dass du XL2016 hast. Dann ist PQ dort enthalten: Daten/Daten abrufen und transformieren.
HAb ich eben auch bemerkt, früher gabs mal nen eigenen Reiter...

Ja die guten alten Zeiten  Smile

Danke
Oder in VBA

Code:
Sub M_snb()
   sn = Sheet1.Cells(1).CurrentRegion
   ReDim sp(UBound(sn) * UBound(sn, 2), 1)
  
   For j = 2 To UBound(sn)
     For jj = 2 To UBound(sn, 2)
        If sn(j, jj) <> "" Then
           sp(y, 0) = sn(j, 1)
           sp(y, 1) = sn(j, jj)
           y = y + 1
        End If
     Next
   Next
  
   Sheet2.Cells(2, 1).Resize(UBound(sp), 2) = sp
End Sub