Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1888to1892
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mit PQ Texte interaktiv "pivotieren" ...

mit PQ Texte interaktiv "pivotieren" ...
08.07.2022 09:46:10
neopa
Hallo PQ.Fans,
... also ich such eine Lösung wie ich z.B. nachfolgende Tabelle B2:C11 in E2:E7 überführen kann. Ich suche keine Formel- und keine VBA-Lösung.
Ich suche eine PQ-Lösung, die möglichst ausschließlich unter Einsatz der im PQ-Menü angebotenen Funktionen (also interaktiv) definiert werden kann.
Geht das überhaupt? Oder geht das nur mit zusätzlichen Einsatz von M-Code-Funktionen?
Arbeitsblatt mit dem Namen 'Tabelle2'
 ABCDEF
1      
2 ArtTyp ArtTyp-Liste
3 A_01a A_01a
4 A_02b A_02b, c, f
5 A_02c A_03a, c
6 A_02f A_04b
7 A_03a A_05d, e
8 A_03c   
9 A_04b   
10 A_05d   
11 A_05e   
12      
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Gruß Werner
.. , - ...

27
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit PQ Texte interaktiv "pivotieren" ...
08.07.2022 10:59:48
ChrisL
Hi Werner
Hier noch mit Standard-Mitteln:

let
Quelle = Excel.CurrentWorkbook(){[Name="tab_Daten"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Art", type text}, {"Typ", type text}}),
#"Gruppierte Zeilen" = Table.Group(#"Geänderter Typ", {"Art"}, {{"alle", each _, type table [Art=nullable text, Typ=nullable text]}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Gruppierte Zeilen", "Benutzerdefiniert", each [alle][Typ]),
#"Extrahierte Werte" = Table.TransformColumns(#"Hinzugefügte benutzerdefinierte Spalte", {"Benutzerdefiniert", each Text.Combine(List.Transform(_, Text.From), ", "), type text}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Extrahierte Werte",{"alle"})
in
#"Entfernte Spalten"
cu
Chris
Anzeige
AW: mit PQ Texte interaktiv "pivotieren" ...
08.07.2022 11:10:33
Luschi
Hallo ChrisL,
kann man diesen Schritt in E_365:
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Gruppierte Zeilen", "Benutzerdefiniert", each [alle][Typ])
noch mit der Maus klicken, oder muß man da schon ein bißchen 'M' geschnuppert haben?
fragt sich Luschi
aus klein-Paris
PS: ansonsten eine gute Lösung.
AW: prima, ...
08.07.2022 12:51:39
neopa
Hallo Chris,
... auch wenn es nicht zu 100% allein durch Mausklicken erzielbar ist, wie dies schon Luschi festgestellt hat, betrachte ich jedoch diese Deine Lösung als "Standard-PQ-Lösung".
Habe so wieder was neues gelernt. Vielen Dank. Dir dafür :-)
Gruß Werner
.. , - ...
Anzeige
AW: die Aussagen von Lusch und mir ...
08.07.2022 13:22:50
Lusch
Hallo Chris,
... bezogen sich nicht aus die Gruppierungsschritt sondern auf das Anfügen von "[Typ]" im Schritt: "Hinzugefügte benutzerdefinierte Spalte".
Gruß Werner
.. , - ...
AW: die Aussagen von Lusch und mir ...
08.07.2022 14:12:22
Lusch
ach so...
ja da macht man "Spalte hinzufügen":

=[alle][Typ]
[alle] ist die Spalte, welche mit den gruppierten Tabellen (typ table) gefüllt ist. Durch die Angabe der Spaltenbezeichnung [Typ] erzeugt man eine neue Spalte, gefüllt mit dem Datentyp list. Und Typ list kann man dann mit Standardmitteln extrahieren (u.a. kommagetrennt)
Anzeige
AW: danke, soweit schon klar ...
08.07.2022 15:51:23
neopa
Hallo Chris,
... unsere Frage war/ist, ob in Deiner (365er-)XLS-Version die Auswahl von [alle][Typ] direkt angeboten wird?. In XL2016 kann ich nur [alle] auswählen und muss z.B. in der Editoreingabezeile per Tastatureingabe [Typ] händisch ergänzen.
Gruß Werner
.. , - ...
AW: danke, soweit schon klar ...
08.07.2022 16:18:55
ChrisL
Hi Werner
Dies ist auch in XL365 so d.h. die benutzerdefinierte Spalte muss man händisch definieren. Meine Aussage "mit Standardmitteln" meinte ich so, dass weder der erweiterte Editor, noch Programmierkenntnisse erforderlich sind. Die hinzugefügte Spalte lässt sich über die Schrittfolge nachvollziehen.
cu
Chris
Anzeige
AW: so ist nun alles klar, danke owT
08.07.2022 17:13:39
neopa
Gruß Werner
.. , - ...
AW: so ist nun alles klar, danke owT
09.07.2022 06:28:25
Luschi
Hallo Eifeljoi5 ,
Deine Lösung sofort in mein PQ-Lösungs-Sammelheft (natürlich elektronisch) aufgenommen - gefällt mir.
Gruß von Luschi
aus klein-Paris

AW: mit Einsatz von Table.Group() ...
09.07.2022 08:11:35
Table.Group()
Hallo Eifeljoi5,
... damit ist Dein Vorschlag natürlich die effiziente Lösung.
Obwohl ich nach einer Lösung "möglichst ausschließlich unter Einsatz der im PQ-Menü angebotenen Funktionen" gefragt hatte, Dir vielen Dank für diesen Lösungsvorschlag.
Gruß Werner
.. , - ...
Anzeige
AW: mit Einsatz von Table.Group() ...
09.07.2022 10:05:28
Table.Group()
Hallo
@Luschi
Freut mich wenn dir meine Lösung. Auch deine Lösungen die ich bis jetzt so gesehen habe, sind von sehr hoher Quali.
@Werner
Ja ich hatte es auch gelesen das du auf nur solche Lösungen fixiert bist.
Aber ich dachte mir weil es so schön zu vorhaben gepasst hat, setzt mal den Vorschlag auch mal dazu, vielleicht könnte es jemanden gefallen und nutzen.
Meine Lösung ist übers Menü gemacht worden, wobei ich zum Schluß im M eine kleinigkeit geändert habe.
Auch deine Lösungen finde ich gut.
Auch die Lösungen von ChrisL finde ich sehr toll.
AW: dazu ...
10.07.2022 08:58:27
neopa
Hallo Eifeljoi5,
... zumindest für mich von Interesse wäre, welchen Menüfunktion in welcher XL-Version Du dazu aktiviert hast und welche "Kleinigkeit" im Editor dann noch notwendig war? Kannst Du das bitte noch nachreichen.
Gruß Werner
.. , - ...
Anzeige
AW: dazu ...
10.07.2022 11:02:32
Eifeljoi5
Hallo Werner
Ich benutze Microsoft 365 Abo in Beta Version.
Anbei der M-Code ohne ihn im nachhinein zu bearbeiten, somit sind mehr Codezeilen.
Denke ich habe deine Frage bzw. bedenken hiermit beantworten können.

let
Quelle = Excel.CurrentWorkbook(){[Name="tab_Daten"]}[Content],
#"Grouped Rows" = Table.Group(Quelle, {"Art"}, {{"Anzahl", each _, type table [Art=text, Typ=text]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Typ", each Table.Column([Anzahl],"Typ")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Typ", each Text.Combine(List.Transform(_, Text.From), ","), type text}),
#"Removed Columns" = Table.RemoveColumns(#"Extracted Values",{"Anzahl"})
in
#"Removed Columns"

Anzeige
AW: dazu ...
10.07.2022 14:30:01
Luschi
Hallo,
mit Excel 2019 pro+ kann ich diesen PQ-Code nicht im PQ-Editor -Menü per Maus zusammenklicken.
Mein PQ-Wissen hole ich mir aus dem PQ-Challenges mit verschiedensten Solutions in amerikanischen und indischen Foren.
Gruß von Luschi
aus klein-Paris
AW: dies erklärt einiges ...
10.07.2022 19:48:53
neopa
Hallo Eifeljoi5,
... in meiner XL2016er Version gibt es nämlich keinen solche Gruppierungsoption, die einen solchen M-Code erzeugen kann, wie Du es hier aufgezeigt hast.
Und zu Deiner zuvor getroffene Aussage: "... wobei ich zum Schluß im M eine Kleinigkeit geändert habe" kann ich nur feststellen, dass dies für Dich zutreffend sein mag, aber nicht für mich. Ein Zusammenfügen von 4 M-Code-Zeilen zu nur einer Code-Zeile erfordert mE schon ein etwas tieferes Verständnis des M-Codes, welches ich persönlich nicht als Zielstellung habe. Aber danke für Deine Rückantwort.
Gruß Werner
.. , - ...
Anzeige
AW: dies erklärt einiges ...
10.07.2022 20:13:45
Eifeljoi5
Hallo werner
Soweit ich mich heut noch an Excel 2016 erinneren gab es dort auch die Gruppieroption schon.
Markiere im PQ- Editor die Spalte "Art" und wähle unter Vorang "Alle Zeilen" aus.
AW: ja, natürlich ...
11.07.2022 09:11:04
neopa
Hallo Eifeljoi5,
... so konnte ich ja auch den Vorschlag von Chris realisieren (mir hatte da zuvor nur der Schritt des Hinzufügens der benutzerdefinierten Spalte auf Basis der gruppierten Table-Spalte gefehlt). Es gibt aber in meiner XL-Version keine Menüfunktion um = Table.Group(Quelle, {"Art"}, {{"Typ", each Text.Combine(_[Typ], ","), type text}}) zu erzeugen. das ist das was ich meinte.
Gruß Werner
.. , - ...
Anzeige
PQ Versionsunterschiede
11.07.2022 08:56:29
ChrisL
Hi Werner
Mal losgelöst von der expliziten Fragestellung und Rückfrage. XL-Versionsunterschiede in Bezug auf PQ.
Bisher konnte ich da nur 2 namhafte Unterschiede feststellen, was die Funktionalitäten betrifft.
- XL 365 erlaubt die Übergabe von Daten direkt nach Pivot, ohne Umweg übers Datenmodell
- Alte Versionen kennen den optionalen 5. Parameter bei AddIndexColumn noch nicht
https://www.herber.de/forum/archiv/1884to1888/1884493_Datentransformation_mit_Power_Query.html#1884633
Weitere wesentliche Unterschiede konnte ich bisher nicht feststellten. Gut möglich, dass es noch mehr gibt, aber die erwähnten zwei habe ich für mich als "relevant" abgespeichert.
cu
Chris
AW: ich würde es gern nach vollziehen können ...
11.07.2022 09:45:16
neopa
Hallo Chris,
... wie Eifeljoi5 mit einer "kleinen" Änderung von

let
Quelle = Excel.CurrentWorkbook(){[Name="tab_Daten"]}[Content],
#"Grouped Rows" = Table.Group(Quelle, {"Art"}, {{"Anzahl", each _, type table [Art=text, Typ=text]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Typ", each Table.Column([Anzahl],"Typ")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Typ", each Text.Combine(List.Transform(_, Text.From), ","), type text}),
#"Removed Columns" = Table.RemoveColumns(#"Extracted Values",{"Anzahl"})
in
#"Removed Columns"
zu:

let
Quelle = Excel.CurrentWorkbook(){[Name="tab_Daten"]}[Content],
Gruppe = Table.Group(#"Quelle", {"Art"}, {{"Typ", each Text.Combine(_[Typ], ","), type text}})
in
Gruppe
gekommen ist.
Mir erschließt es sich nur momentan leider noch nicht. Sorry, vielleicht stehe ich ja nur mal wieder auf der Leitung.
Gruß Werner
.. , - ...
AW: ich würde es gern nach vollziehen können ...
11.07.2022 10:04:11
ChrisL
Hi Werner
Ich wollte nur mal mit dem Gerücht aufräumen, dass sich die PQ-Funktionalitäten in den unterschiedlichen XL-Versionen grundlegend unterscheiden. :)
Bisher konnte ich nur die erwähnten 2 Unterschiede feststellen.
Deine Frage müsste Eifel* beantworten. Ich würde mal vermuten, dass die M-Code Änderungen aus Sicht eines Normalverbrauchers nicht ganz so klein/intuitiv sind. Aber aus Sicht eines M-Code Profis trivial sind. Im Prinzip wurde Text.Combine (auf List 'Typ') einfach in den Schritt Table.Group integriert. Wenn man weiss wie, dann ist es wie so oft einfach/klein.
cu
Chris
AW: so jetzt nachvollziehbar, allerdings ...
11.07.2022 11:44:54
neopa
Hallo Chris,
... für mich eben nur, wenn ich die Lösungsvorlage parallel offen halte. Ohne diese würde ich es aktuell nicht nachvollziehen können. Muss ich glücklicherweise auch nicht. Mir reicht es schon, dass ich Deine ursprünglich eingestellte Lösungsvariante ohne Lösungsvorlage nachstellen kann.
Ich danke Dir für Deine Ausführungen und wünsch noch einen schönen Tag.
Gruß Werner
.. , - ...
AW: ich würde es gern nach vollziehen können ...
12.07.2022 15:10:06
Eifeljoi5
Hallo Werner
Ich bin leider kein großer Erklärbär, tut mir Leid.
Was ich mache:
Ich erstelle zuerst eine Langfassung einer Lösung mit PQ, teste dies 99% aller zuerst erstellten Lösungen funktionieren auf Anhieb.
Funktioniert die Lösung versuche ich sie ein zu kürzen vom M Code her, bekanntlich durch viel Code wird sie langsamer so habe ich die Festellung gemacht.
Kürzen mache ich überwiegend nur durch kopieren des letzten Teil vom Code und füge es vor dem rechten Komma oberhalb ein.
Wird mir dann ein Fehler angezeigt ganz unten links muss ich weiter rum probieren, wird kein Fehler angezeigt hatte ich einfach nur Glück.
Funktioniert das hinein kopierte so lösche ich mir diesen Schritt dadrunter und ändere im nachfolgenden Schritt das Aufrufen des Schritts auf den davorliegenden der immer ganz links steht und meistens mit # anfängt.
Muss ganz ehrlich gestehen es gelingt mir nicht immer so ein zu kürzen wie ich mir es vorstelle leider.
Bin noch die ganze Zeit im Netz am suchen nach einem Video bzw. Beschreibung wie man eine Einkürzung des M-Code profihaft kürzt, bis jetzt ohne Erfolg.
AW: zu Deine Feststellung ...
12.07.2022 15:44:16
neopa
Hallo Eifeljoi5,
... wonach eine interaktiv zusammengestellte PQ-Lösung langsamer auswertet, habe ich auch schon gemacht. Hatte vorige Woche sogar die Feststellung machen müssen, dass für eine spez. Datenauswertung von etwas über 700 Datensätzen mit meiner PQ-Lösung, um mindestens 10 mal langsamer war, als meine parallel dazu entwickelte Formellösung. Dabei musste ich da für verschiedene Spaltenergebnisse auch verschiedene Formeln (und nicht nur triviale) definieren. Ich hoffe, dass diese meine Feststellung nicht zu verallgemeinern ist, denn dann würde ich mich wieder von PQ abwenden. Dies dann wohl spätestens, wenn ich mich mal von meinen XL2010er und XL2016er Versionen trenne.
Deine Erklärung wie Du die Codeoptimierung vorgenommen hast, klingt plausibel. Dem werde ich mich mal bei passender Gelegenheit schrittweise widmen.Vielen Dank Dir für Deine Ausführungen.
Was ich übrigens in PQ schmerzlich vermisse, ist eine bessere Onlinehilfe für die M-Code Funktionen sowie Undo-Funktionalität im PQ-Editor.
Gruß Werner
.. , - ...
AW: so ist nun alles klar, danke owT
11.07.2022 08:46:25
ChrisL
Hi
Elegant. Deine Lösung gefällt mir.

let
Quelle = Excel.CurrentWorkbook(){[Name="tab_Daten"]}[Content],
Gruppe = Table.Group(#"Quelle", {"Art"}, {{"Typ", each Text.Combine(_[Typ], ","), type text}})
in
Gruppe
cu
Chris

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige