Kreuztabelle in Liste umwandeln ohne VBA
#1
Moin zusammen,
ich habe eine Herausforderung an die Excel-Spezialisten hier im Forum. Das Umwandeln einer Kreuztabelle in eine Liste ist auch für mich kein Problem. In diesem Fall bin ich als Gelegenheitsanwender von Excel jedoch aufgeschmissen.

Der Screenshot und die XLS Datei im Anhang zeigen die Aufgabe: In der Datenbank habe ich in den Spalten Mitarbeiter, in den Zeilen diverse Projekte. Die Mitarbeiter sind jeweils nur in diversen Projekten verplant und ich möchte eine Liste generieren (ohne VBA), welche für die einzelnen Mitarbeiter (nur) die Projekte auflistet, in denen Stunden für diese geplant wurden. Das heiß aktuell sind die ersten zwei Spalten der Liste die Herausforderung für mich.

Schon im Voraus Danke für eure Tipps!


Angehängte Dateien Thumbnail(s)
   

.xlsx   Mappe1.xlsx (Größe: 11,35 KB / Downloads: 14)
Antworten Top
#2
Powerquery und Entpivotieren
Antworten Top
#3
Hallo Warkings, vielen Dank für diesen Hinweis.

Mein Fehler, ich habe das was ich tun möchte etwas falsch beschrieben!

Ich möchte die Kreuztabelle nicht umwandeln (diese muss bestehen bleiben), sondern "nur" die enthaltenen Werte der Kreuztabelle wie beschrieben auf einem anderen Blatt in der Liste auslesen.
Antworten Top
#4
Schau Dir die Videos von Andreas Theos auf YouTube an

PQ: https://www.youtube.com/watch?v=_ZuvBjhCu9A
Formeln: https://www.youtube.com/watch?v=wO0IZmGIq0k&t=92s
Pivot Konsolidierung: https://www.youtube.com/watch?v=a2Dxpx38bJI
Gruss Ralf
Antworten Top
#5
Tolle Tutorials, aber ich konnte nicht herausfinden, wie ich Zellen ohne Inhalte überspringe.
Antworten Top
#6
Das macht PQ automatisch.


Angehängte Dateien
.xlsx   Mappe1.xlsx (Größe: 20,91 KB / Downloads: 8)
Cadmus
Antworten Top
#7
Hallo Tyros73,

hier ein Formellösung, die allerdings recht aufwendig/komplex ist:

Arbeitsblatt mit dem Namen 'Tabelle1'
CDEFG
2Projekt:Mitarbeiter / Stunden
3X1X2X3X4
4A20
5B5994
6C30
7D22
8E8
9F
10G30
11H10
12I4500
13XXX2,5
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Arbeitsblatt mit dem Namen 'Tabelle1'
IJK
15Mitarbeiter:Projekt:Stunden:
16X1A20
17X1C30
18X1G30
19X1XXX2,5
20X2B5
21X2E8
22X2I4
23X3B99
24X3D22
25X3H10
26X4B4
27X4I500

ZelleFormel
I16=D3
I17=WENN(ZEILE(A1)>=ANZAHL($D$4:$G$13);"";WENN(ZEILE(A1)=ANZAHL(BEREICH.VERSCHIEBEN($D$4:$D$13;;;;VERGLEICH(I16;$D$3:$G$3;0)));INDEX($D$3:$G$3;VERGLEICH(I16;$D$3:$G$3;0)+1);I16))
J16=WENN(I16<>"";INDEX($C$4:$C$13;AGGREGAT(15;6;ZEILE($C$4:$C$13)/(INDEX($D$4:$G$13;0;VERGLEICH(I16;$D$3:$G$3;0))<>"")-ZEILE($C$3);ZÄHLENWENN($I$16:I16;I16)));"")
K16=WENN(I16<>"";INDEX($D$4:$G$13;VERGLEICH(J16;$C$4:$C$13;0);VERGLEICH(I16;$D$3:$G$3;0));"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Gruß
Fred


Angehängte Dateien
.xlsx   Kreuztabelle in Liste umwandeln ohne VBA_fs2.xlsx (Größe: 14,1 KB / Downloads: 5)
Antworten Top
#8
Beide folgenden für neues Excel:

office-hilfe.com/support/threads/entpivotisierung-dyn-kreuztab-mittels-filter-sequenz-und-bereich-verschieben.33821/

office-hilfe.com/support/threads/lambda-udf-ben-def-tabellenfunktionen-ohne-vba-xl4m.36909/#UNPIVOT
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#9
Hallo Fred,

nach langem Suchen bin ich auf Deine Formel gestoßen und die löst fast mein Problem. Ich bräuchte „nur“ die Achsen vertauscht, bekomme das aber leider nicht hin. Bei mir stehen senkrecht die Namen und horizontal die 52 Kalenderwochen. Das Ergebnis sollte dann ähnlich wie bei dieser Lösung die Name und die KW senkrecht nebeneinander sein, anschließend der entsprechende Zelleninhalt, falls was eingetragen ist. Ein reines Ersetzen der ZEILE durch SPALTE bringt mich leider nicht zum Ziel. Tauschen möchte ich deshalb, da die KWs im Jahr fix sind, die Anzahl der Namen aber variieren kann.
Hast Du da eine Idee?

Grüße

Michael
Antworten Top
#10
Hallo Michael,

die Formeln, um die Kreuztabelle in Listenform umzuwandeln ("entpivotieren") sind recht komplex; mit Ersetzen von ZEILE durch SPALTE ist es da nicht getan; da muss man schon einiges mehr anpassen (Bereiche anpassen...).
Ich habe in der angehängten Beispieldatei die Formel mal entsprechend umgebaut.

.xlsx   Kreuztabelle in Liste umwandeln _umgekehrt_fs2.xlsx (Größe: 13,62 KB / Downloads: 5)
Allerdings hat die Formel eine Schwachstelle: In dem Fall, wenn ein oder mehrere Mitarbeiter bei keiner KW einen Eintrag hat (also eine oder mehrere Zeilen komplett leer sind), funktioniert die Formel nicht und gibt ein falsches Ergebnis zurück. Wie man das in der Formellösung noch abfangen könnte, habe ich aktuell keine Idee.

Laut deinem Profil hast du Excel 2016; da ist PowerQuery (Menü Daten -> Daten abrufen und transformieren) integriert.
Damit geht es ganz einfach, eine Kreuztabelle in eine Datensatzliste umzuwandeln.
Excel-Tipp: Aus einer Kreuztabelle eine Liste erstellen – entpivotieren (business-wissen.de)
3 Methods to unpivot in Excel using Power Query | Excel Off The Grid (youtube.com)

.xlsx   Kreuztabelle in Liste umwandeln __PQ.xlsx (Größe: 20,25 KB / Downloads: 2)

Gruß
Fred
< es lebe die Hilfsspalte >
[-] Folgende(r) 1 Nutzer sagt Danke an Fred11 für diesen Beitrag:
  • Mikecell
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste