Transponieren „Spezial” mit PivotTable und Power Query

  Wis­sens­stand: Lev­el 2 ⇒ Solides Basiswis­sen in Excel, etwas Erfahrung in PQ   

Gegeben ist eine Liste mit Namen sowie unter­schiedlichen Obst­sorten, die von der jew­eili­gen Per­son eingekauft wer­den sollen:

Die importierte Liste, als Tabelle for­matiert

Das Ziel ist, daraus ein­er­seits eine Kreuzta­belle nach diesem Muster zu erstellen:

Das gegebene Ziel: Eine Kreuzta­belle

… oder aber über eine Piv­ot Tabelle (oder auch zwei PT) eine Übersicht/Liste bzw. eine Art Einkauf­s­Liste zu erstellen:

Beispiel ein­er Piv­ot­Table

Gle­iche Basis-Dat­en, eine andere Piv­ot-Sicht

Kreuztabelle per Power Query

Wenn Sie mögen, tip­pen Sie die in der ersten Abbil­dung gezeigten Dat­en gerne ab. Alter­na­tiv biete ich Ihnen an, hier eine csv-Tabelle herun­terzu­laden, welche sie dann entwed­er in ein Excel Arbeits­blatt oder gle­ich in Pow­er Query importieren. Und wenn Sie exper­i­men­tier­freudig sind, dann kopieren Sie doch ein­fach die URL (die Inter­net- bzw. Link-Adresse) per Recht­sklick auf den Link hierüber und importieren die csv direkt aus dem Web in den Abfrage-Edi­tor. In dem Fall müssen Sie aber unbe­d­ingt als ersten Schritt nach dem Import (über Dat­en trans­formieren) die Erste Zeile als Über­schriften ver­wen­den.

Nach dem Import in Pow­er Query merken Sie sich bitte die exak­te Schreib­weise der Über­schrift mit den Frücht­en; es ist Obst­sorte und es han­delt sich hier ja um jene Dat­en, welche später in der Kreuzta­belle unter­halb der Namen (welche ja die Über­schriften sein wer­den) ange­ord­net wer­den. – Markieren Sie nun die Spalte Name, wählen Grup­pieren nach und ändern Sie bei Vor­gang die Auswahl auf Alle Zeilen. Nach einem OK wird sich die Abfrage so darstellen:

Nach der Grup­pierung stellt sich die Abfrage so dar…

Name ist auf die Unikate reduziert. Obst­sorte ist schein­bar ver­schwun­den oder durch Anzahl erset­zt und auch auf 6 Zeilen reduziert. Die Über­schrift dieser zweit­en Spalte ist zwar Anzahl, aber das ist nicht rel­e­vant, denn Sie wer­den darauf keinen Bezug nehmen. Der Inhalt jed­er Zeile dieser zweit­en Spalte ist durchgängig Table aber in diesem Fall wer­den sie aus­nahm­sweise ein­mal nicht auf den Dop­pelpfeil Doppelpfeil Klick­en, um die Spalte zu erweit­ern; Sie belassen es bei diesem Zus­tand und tun an bzw. mit dieser Spalte erst ein­mal gar nichts.

Wech­seln Sie zum Reg­is­ter Spalte hinzufü­gen | Benutzerdefinierte Spalte und tra­gen Sie im Feld Benutzerdefinierte Spal­tenformel diese Formel exakt so ein:
= Table.Column([Anzahl], "Obstsorte")
wobei sie den Spal­tenna­men Benutzerdefiniert auch gerne so lassen kön­nen. Wie in Pow­er Query (genauer gesagt: der Sprache M) üblich, müssen Sie exakt auf die Groß- Klein­schrei­bung acht­en. Den (Spal­ten-) Namen [Anzahl] übernehmen Sie ide­al­er­weise durch einen Dop­pelk­lick im recht­en Kas­ten Ver­füg­bar­er Spal­ten. Den eben gemerk­ten Spal­tenna­men "Obst­sorten" müssen sie mit den Anführungsze­ichen von Hand eingeben, denn unter diesem Namen existiert die Spalte ja nicht mehr, aber der Inhalt wird nach wie vor unter diesem Namen intern geführt. Das derzeit­ige Ergeb­nis stellt sich nun so dar:

Die neu erstellte Spalte enthält durchgängig den Ein­trag ‘List’ (Liste).

Erweit­ern Sie nun die Spalte Benutzerdefiniert durch einen Klick auf den Dop­pelpfeil Doppelpfeil in der Über­schrift und wählen Sie im Drop­Down die Option Werte extrahieren… Im Dia­log-Fen­ster wählen Sie als Trennze­ichen für das ver­ket­ten von Lis­ten­werten beispiel­sweise das in Deutsch­land übliche Semi­kolon ;, es kann aber auch Belieben ein anderes Zeichen sein. Nach dem schließen des Fen­sters stellt sich die Abfrage so dar (hier mit ein­er von mir ver­bre­it­erten Spalte Benutzerdefiniert):

Mit Semi­ko­la ges­plit­tete Spalte ‘Benutzerdefiniert’

Nun wech­seln Sie bei beste­hen­der Markierung der Spalte Benutzerdefiniert zum Reg­is­ter Start | Spalte teilen und akzep­tieren die Vor­gabe Semi­kolon sowie Bei jedem Vorkom­men des Trennze­ichens. Das Resul­tat wird so sein, wie Sie es erwartet haben; die Spalte Benutzerdefiniert wurde in so viele Spal­ten aufgeteilt, wie die Anzahl der Semi­lo­la +1 in der ursprünglichen Zelle der jew­eili­gen Zeile ist.

Im fol­gen­den Schritt löschen Sie die Spalte Anzahl (die mit dem Inhalt Table), sie wird nicht mehr benötigt. Wenn Sie möcht­en, dass die Namen in der zu erzeu­gen­den Kreuzta­belle alpha­betisch sortiert sind, dann sortieren sie an dieser Stelle die Spalte Namen auf­steigend. Ein klein­er Tipp: eventuell wer­den sie diesen Schritt später noch ein­mal deak­tivieren, rück­gängig machen. Darum schlage ich fol­gen­des vor: Im recht­en Seit­en­fen­ster ein Recht­sklick auf diesen Ein­trag (Sortierte Zeilen), Umbe­nen­nen und beispiel­sweise  (Namen) anhän­gen.

Das Ergeb­nis ist nun zwar eine Kreuzta­belle, aber die Zielvorstel­lung war ja eine andere. In der Über­schrift soll­ten die Namen ste­hen und in den Zeilen darunter die entsprechen­den Früchte. Um das zu erre­ichen, wech­seln Sie zu Trans­formieren und wählen in der Gruppe Tabelle das Sym­bol Ver­tauschen. Prinzip­iell entspricht jet­zt nach dem transponieren die Anord­nung der Wun­schvorstel­lung. Das einzige, was nicht so 100% ist: Die durch Pow­er Query automa­tisch erzeugten Über­schriften Column1 bis Column6. Das ist aber recht schnell ins richtige Lot zu brin­gen. Reg­is­ter Start, Gruppe Trans­formieren | Erste Zeile als Über­schriften ver­wen­den und sie haben (endlich) das Ziel erre­icht. 🙂 Nun nur noch Schließen & laden oder Schließen & laden in…, um die Dat­en in ein neues oder das beste­hende Tabel­len­blatt an eine definierte Posi­tion zu schreiben.

▲ nach oben …

Auswertung mit PivotTable

Gle­ich zu Beginn sei ange­merkt, dass eine exak­te oder auch nur weit­ge­hend gle­iche Darstel­lung wie eben mit Pow­er Query erzeugt mit ein­er Piv­ot Tabelle nicht möglich ist. Dafür gibt es aber mit diesem Tool andere Möglichkeit­en, die bei entsprechen­der Auf­gaben­stel­lung leichter zu hand­haben sind.

PivotTable (einfache Auflistung)

Eine Piv­ot Tabelle kann für den „ges­tandene” Excel-User gewiss mit weni­gen Hand­grif­f­en bzw. Mausklicks leichter erstellt wer­den, als die vorgestellte Kreuzta­belle über den Weg des Pow­er Query. Wie schon erwäh­nt, ist das Ausse­hen aber deut­lich anders, wenn auss­chließlich Name und Obst­sorten gezeigt wer­den sollen:

Beispiel ein­er Piv­ot­Table

Die Schritte zum Ziel sind (stich­wor­tar­tig) fol­gende:

  • Falls noch nicht erfol­gt, die Dat­en aus der csv in ein Tabel­len­blatt importieren. Hin­weis: In Excel >= 2019 oder 365 wer­den Sie zweck­mäßiger­weise den Lega­cy-Assis­ten­ten ver­wen­den und umge­hen damit den Import per PQ.
  • Nach dem Import in die Dat­en Klick­en und per StrgT oder StrgL eine Intel­li­gente Tabelle daraus machen.
  • Klick in die Tabelle, Reg­is­ter Tabel­len­tools | Entwurf markieren und in der Gruppe Tools den Punkt Mit Piv­ot­Table zusam­men­fassen anklick­en.
  • Die Tabelle bzw. der Bere­ich ist ja bere­its aus­gewählt, darum leg­en Sie nun fest, ob die Piv­ot Tabelle in ein Neues Arbeits­blatt oder Vorhan­denes Arbeits­blatt geschrieben wer­den soll.
  • Im recht­en Seit­en­fen­ster Piv­ot­Table-Felder set­zen Sie nun das Häkchen zuerst bei Name und anschließend bei Obst­sorte.

Grund­sät­zlich ist damit die Piv­ot Tabelle erstellt. Möcht­en Sie das Ausse­hen etwas „hüb­schen”, dann gehen Sie über Entwurf | Bericht­slay­out | Im Gliederungs­for­mat Anzeigen und anschließend bei Gesamtergeb­nisse die Auswahl Für Zeilen und Spal­ten deak­tiviert tre­f­fen.

Neben der anderen Anord­nung der Dat­en gibt es bei dieser Piv­ot­Table zwei weit­ere deut­liche Unter­schiede: Die Obst­sorten sind bei jedem einzel­nen Namen auf­steigend sortiert und eventuelle Dublet­ten bei den Obst­sorten wer­den nicht mehrfach angezeigt. Diese PT kann man also gut und gerne als Über­sicht betra­cht­en, wer sich für welch­es Obst inter­essiert. Und es ist natür­lich sehr leicht, rechts im Bere­ich Zeilen die Obst­sorte nach oben (also an erster Posi­tion, ober­halb Name) zu ziehen und dann sofort eine andere Sichtweise auf dem schon zu haben. Das ist ein klar­er Vorteil ein­er Piv­ot­Table.

▲ nach oben …

PivotTable (mit Anzahl und Berechnung)

Mit ein­er etwas anderen Gestal­tung der Piv­ot Tabelle kann auf recht ein­fache Weise zweier­lei erre­icht wer­den: Erstens die Darstel­lung als Kreuzta­belle und zweit­ens wird durch die Angabe der Anzahl der jew­eili­gen Obst­sorte und der automa­tis­chen Berech­nung so etwas wie eine Einkauf­s­Liste erzeugt:

Gle­ichen Basis-Dat­en, eine andere Piv­ot-Sicht

Natür­lich wer­den Sie auch hier die gle­ichen Quell­dat­en ver­wen­den wie bish­er. Sie erstellen eine neue Piv­ot­Table an beliebiger Posi­tion und ziehen das Feld Name in den Bere­ich Spal­ten und das Feld Obst­sorte in den Bere­ich Zeilen. Anschließend das Feld Obst­sorte noch ein­mal in den Bere­ich Werte ziehen und das Ergeb­nis stellt sich beina­he so dar, wie in dem Bild hierüber. Mit zwei kleinen Änderun­gen erre­ichen Sie eine iden­tis­che Darstel­lung: Ändern Sie in der ersten Zeile der PT die Über­schrift Anzahl von Obst­sorte in Obst­sorten und im Bericht­slay­out wer­den sie Im Gliederungs­for­mat anzeigen aktivieren.

Durch die andere Darstel­lung erken­nen sie auch ganz klar, dass Jen­nifer bei den Aprikosen und Maren bei den Erd­beeren mit je zwei Posi­tio­nen dabei ist. Die automa­tis­chen Berech­nun­gen der Gesamtergeb­nisse stellt eine ide­ale Über­sicht für beispiel­sweise eine Einkauf­s­Liste dar.

▲ nach oben …

Power Query (Änderung in der Sortierung)

Vielle­icht kommt bei Ihnen jet­zt der Wun­sch auf, dass die per Pow­er Query erstellte Kreuzta­belle nicht nur bei den Namen, son­dern auch bei den Obst­sorten in jed­er Namenss­palte auf­steigend sortiert sein soll. Um das den neuen Wün­schen anzu­passen, öff­nen Sie erst ein­mal die Pow­er Query-Abfrage. Dazu markieren Sie ein beliebiges Feld in der durch PQ erzeugten Ergeb­nis-Tabelle und dann Abfrage­tools|Abfrage | Bear­beit­en. Alter­na­tiv geht natür­lich auch ein Dop­pelk­lick auf den entsprechen­den Ein­trag im recht­en Seit­en­fen­ster (sofern dieses einge­blendet ist).

Sie erin­nern sich, dass sie im recht­en Seit­en­fen­ster den einen Schritt umbe­nan­nt haben bzw. soll­ten. Markieren Sie diese Zeile und Klick­en dann auf das rote Kreuz links des Textes. Damit wird dieser Schritt (nach ein­er Bestä­ti­gung) gelöscht. Sie erken­nen auch, dass in der Abfrage jet­zt wieder die alte, unsortierte Rei­hen­folge gegeben ist. Wählen Sie nun bei Angewen­dete Schritte den zweit­en Ein­trag Geän­dert­er Typ durch einen ein­fachen Klick auf diese Zeile. Sortieren Sie nun zuerst die Spalte Name Auf­steigend und gle­ich danach die Spalte Obst­sorte eben­falls Auf­steigend. Die Sicher­heitsabfrage durch Pow­er Query bezüglich des Ein­fü­gens eines Schritts wer­den sie jew­eils bestäti­gen.

Das war’s auch schon. Ein Klick auf das Sym­bol Schließen & laden und Pow­er Query wird den Abfrage-Edi­tor schließen. Und sie wer­den rasch erken­nen, dass die PQ-Tabelle ohne weit­eres Zutun in der gewün­scht­en Sortierung auf dem Bild­schirm zu sehen ist. So ist auch in dieser Tabelle leichter erkennbar, dass Jen­nifer und Maren jew­eils eine Obst­sorte dop­pelt gewählt hat­ten. – Ändern Sie gerne in der Orig­i­nal-csv Text­datei oder der importierten Liste/Tabelle die Dublet­ten mit einem anderen Wert ab und aktu­al­isieren Sie die PT-Tabelle und gerne auch die Piv­ot Tabellen. Ja, Excel ist sexy…! 😎 

▲ nach oben …

Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?

Dann würde ich mich über einen Beitrag (z.B. € 2,00) Ihrer­seits freuen …

Dieser Beitrag wurde unter Allgemein, Allgemein, Verschiedenes, Ohne Makro/VBA, Pivot, PQ-Formeln (Sprache M), Spalten bearbeiten, Transponieren, Web-Abfragen abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.