$ PQ: Spalten bedingt zusammenfügen

Xtract: Alle Spal­ten ein­er Liste sollen zeilen­weise so zusam­menge­fasst wer­den, dass nur mit einem „x” gekennze­ich­nete Über­schriften in 1 Zelle zusam­menge­fasst wer­den. (Basis-Ver­sion)

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

Spalten mit definiertem Inhalt zusammenführen (Spezial)

Zu­ge­ge­ben, die­ses ist nicht die opti­male Meth­ode, um per Pow­er Que­ry Spal­ten, wel­che ei­nem gewün­scht­en Kri­teri­um ent­spre­chen, zusam­men­zuführen. Aber es ist ein Weg, um mit mög­lichst we­nig „abstrak­ten” For­meln und Funk­tio­nen so­wie ohne Pro­gram­mierung zum Ziel zu gelan­gen. Sie nut­zen  in die­ser Übung Pow­er Que­ry und kom­men auss­chließlich mit eini­gen (mehr) Maus­klicks zum Ziel. Und vor al­len Din­gen: Der hier ge­zeig­te Weg ist für Sie kosten­frei (ohne eine Spen­de) nachzule­sen und abzuar­beit­en. Für eine klei­ne Spen­de (5 Euro) zei­ge ich Ih­nen aber auch in ei­nem getren­nten $$-Bei­trag ei­nen deut­lich effek­tiv­eren Weg auf. Mehr dazu am Ende die­ser Abhand­lung.

Ich habe für Sie eine et­was umfan­gre­ichere Daten­ba­sis er­stellt, als *.csv gespe­ichert und Ih­nen hier auf un­se­rem Serv­er zum Down­load bere­it­gestellt; Hin­weis: Unbe­d­ingt nur herun­ter­laden und spe­ich­ern, nicht (di­rekt) mit Ex­cel öff­nen, denn die­se *.csv wer­den Sie gle­ich in Pow­er Que­ry im­por­tie­ren. Es sind die gle­ichen 1.000 Na­men wie in dem in der ei­nen oder an­de­ren Auf­gabe ver­wen­de­ten File mit den Geburt­stags­dat­en; hier sind aber die Geburt­stage ent­fer­nt und 4 weit­ere Spal­ten für die Ver­wend­barkeit in Abteilun­gen (Skills) hinzuge­fügt. Hat ein Mitar­beit­er die ent­spre­chen­de Fä­hig­keit ist in der Spal­te ein x einge­tra­gen, son­st ist das Feld leer. Und bit­te nicht in Sa­chen „Kom­pat­i­bil­ität” der Auf­gaben wun­dern, ich habe das Zufall­sprinzip per Ex­cel „entschei­den” las­sen … 😉 Das end­gül­ti­ge Ziel ist, nach den ers­ten 2 Spal­ten mit Vor­name und Name nur noch 1 weit­ere Spal­te (Skills) zu ha­ben, wo alle Ein­satzmöglichkeit­en aufge­führt sind, jew­eils durch ei­nen Kom­ma mit nach­fol­gen­dem Leerze­ichen getren­nt. Die ers­ten Zei­len der Lösungsta­belle wer­den sich schlu­ßen­d­lich so dar­stel­len:

So soll das Endergeb­nis ausse­hen

Um die Auf­gabe gemein­sam mit mir zu erar­beit­en öff­nen Sie Ex­cel erst ein­mal mit ei­nem lee­ren Work­book. Wech­seln Sie zum Reg­is­ter Dat­en und Klick­en Sie im Men­üband auf das Sym­bol Aus Text/csv. Wäh­len Sie im Dia­log die eben herun­terge­ladene Da­tei und das an­fäng­li­che PQ-Dialogfen­ster stellt sich so dar:

Die An­sicht als Import-Assis­tent

Grund­sät­zlich ist es nun egal, ob sie eine Op­ti­on aus der Schalt­fläche La­den wäh­len oder auf Dat­en trans­formieren Klick­en. Ich zie­he die­ses Mal den Weg über La­den vor und wäh­le die Op­ti­on La­den in… Im fol­gen­den Dia­log wäh­le ich dann die Mög­lich­keit, die Dat­en im beste­hen­den Arbeits­blatt in der Zel­le $A$1 zu spe­ich­ern:

Hier soll das Ergeb­nis der Ab­fra­ge gespe­ichert wer­den

Die ers­te Zei­le der csv-Da­tei mit den Über­schriften so­wie die rest­li­chen Zei­len mit den 1.000 Na­men wer­den nun in das ers­te Arbeits­blatt an die gewün­schte Posi­tion ge­schrie­ben. Außer­dem wird im recht­en Seit­en­fen­ster automa­tisch eine Ab­fra­ge mit dem Na­men 1000_­Na­men_­mit­_S­kills an­ge­legt. Sie kön­nen nun in Ex­cel die automa­tisch gener­ierten Über­schriften der Ta­bel­le (Co­lum­n1 bis Co­lum­n7) durch die In­hal­te der ei­gent­li­chen Über­schriften in der jet­zi­gen Zei­le 2 erset­zen. Mit ein­er nicht wirk­lich trans­par­enten For­mel kön­nten Sie dann (eben­falls in Plain Ex­cel) die entsprechen­den Fel­der nach ei­ni­ger Vorar­beit zusam­men­führen. Aber hier geht es ja um  den Ein­satz von Pow­er Que­ry und dar­um be­las­sen Sie es bei die­ser ur­sprüng­li­chen Darstel­lung und wer­den die Dat­en beispiel­sweise durch ei­nen Dop­pelk­lick auf die (ein­zi­ge) Ab­fra­ge im recht­en Seit­en­fen­ster den PQ-Edi­tor öff­nen.

Als ers­tes es ist natür­lich wich­tig, die automa­tisch vergebe­nen Über­schriften durch die In­hal­te der ers­ten Daten­zeile (also den ei­gent­li­chen Über­schriften) zu erset­zen. Dazu wäh­len Sie im Men­üband Ers­te Zei­le als Über­schriften ver­wen­den und die­ses Ziel ist so­fort erre­icht.

Das ers­te Ergeb­nis mein­er fol­gen­den Über­legun­gen war, die einzel­nen Spal­ten ein­fach per M-Funk­tion zu ver­ket­ten. Okay, dazu habe ich et­was pro­gram­miert. Hin­weis: Über­sprin­gen Sie ger­ne die­ses klei­ne Exper­i­ment, es führt nicht zum gewün­scht­en Er­folg. Aber es ist vielle­icht auch lehrre­ich für Sie! Falls Sie es am eige­nen Rech­n­er nachvol­lziehen wol­len: Wech­seln Sie zu Spal­te hinzufü­gen | Be­nut­zer­de­fi­nier­te Spal­te und ge­ben Sie bei Neu­er Spal­tenname den Text Skills ein. Ich habe nun die­se For­mel entwick­elt:

Der Ver­such war es wert…

… Und ob­wohl ein­deutig kei­ne Syn­taxfehler erkan­nt wor­den sind, ist das Ergeb­nis nicht nur er­nüch­ternd, es ist nieder­schmetternd. Er­ror, Er­ror, Er­ror … Auch län­geres herum­ex­per­i­men­tieren auf die­sem Ni­veau hat nicht zum gewün­scht­en Er­folg ge­führt. Also gilt es, ei­nen an­de­ren Weg zu find­en und zu beschre­it­en. Falls Sie die­sem Exper­i­ment gefol­gt sind: Lö­schen Sie im recht­en Seit­en­fen­ster den let­zten Angewen­de­ten Schritt und set­zen da­nach an ei­nem prinzip­iell ganz an­de­ren Punkt an.


Das (neue) Ziel des ers­ten Schrit­tes ist, je­des x durch den Text der Über­schrift der entsprechen­den Spal­te zu erset­zen. Und an die­ser Stel­le mer­ken Sie schon, dass solch ein Vorge­hen bei die­sen fünf Spal­ten noch hin­nehm­bar ist, bei deut­lich mehr Skills ist der Auf­wand aus mein­er Sicht nicht mehr wirk­lich trag­bar. Mar­kie­ren Sie also die ers­te Skill-Spal­te La­ger und erset­zen Sie auf beliebi­gen Wege das x mit La­ger. Gle­ich­es Vorge­hen bei den Spal­ten Ver­sand, Aus­liefer­ung, Ver­kauf und Team­leitung.

Nun mar­kie­ren Sie zu­erst die Spal­te La­ger, Shift und dann ein Klick auf die Über­schrift Team­leitung. Da­durch sind alle Skill-Spal­ten mar­kiert. Wech­seln Sie zum Menü Trans­formieren und ein Klick auf Spal­ten zusam­men­führen. Wäh­len Sie dann bei Trennze­ichen das Kom­ma und bei Neu­er Spal­tenname (option­al) tra­gen Sie beispiel­sweise Skills ein. Nach ei­nem Klick auf OK sieht das ja schon deut­lich bess­er aus als beim ers­ten Ver­such. 😎

Sie wer­den rasch erken­nen, dass auch lee­re Fel­der mit über­nom­men wor­den sind, was sich durch meh­re­re di­rekt aufeinan­der­fol­gende, Kom­mas/Kom­ma­ta dar­stellt. Und in vie­len Fäl­len begin­nt oder en­det der Zell­in­halt mit min­destens ei­nem Kom­ma. Und wenn ein Mitar­beit­er der­zeit kei­nes der Skills er­füllt, dann se­hen Sie wie bei Alain Kuhn (Zei­le 25) nur die tren­nen­den Kom­mas.

Um auss­chließlich per Maus­klick zum Ziel zu gelan­gen, gehe ich fol­gen­den Weg:

  • Je­des Kom­ma in der Spal­te Skills durch ein Leerze­ichen erset­zen.
  • Trans­formieren | For­mat | Kür­zen, um die führen­den und ange­hängten Leerze­ichen zu ent­fer­nen.
  • Wer­te erset­zen | (3 Leerze­ichen) durch 1 Leerze­ichen erset­zen las­sen.
  • Wer­te erset­zen | (2 Leerze­ichen) durch 1 Leerze­ichen erset­zen las­sen; da­durch ist gewährleis­tet, dass im­mer nur ein tren­nen­des Leerze­ichen ge­ge­ben ist.
  • Wer­te erset­zen | (1 Leerze­ichen) durch Kom­ma mit 1 ange­fügten Leerze­ichen erset­zen las­sen.
  • Bei Be­darf kön­nen Sie nun noch die Fel­der ohne In­halt (hier nicht dar­ge­stellt durch null son­dern durch kei­nen Text/leer) durch den Wert (kein Skill) erset­zen las­sen; dazu las­sen Sie beim erset­zen das obe­re Feld frei (leer) und tra­gen in das un­te­re Feld den kün­ftig sicht­baren Wert ein.
  • Schlie­ßen & la­den oder Schlie­ßen & la­den in… und das Ziel ist erre­icht.

Last but not least ein Hin­weis: Die Skills für je­den Na­men habe ich per Zufalls­funk­tion ver­teilt; wenn also ein­mal die Team­leitung auch für alle an­de­ren Skills ei­nen Ein­trag hat, ist er zwar nicht lo­gisch aber denk­bar (und mein­er Arbeit­serspar­nis beim er­stel­len ge­schul­det).

Ein wich­ti­ger Hin­weis
Der Link auf den Fol­ge-Bei­trag begin­nt mit „$$”. Das be­deu­tet für alle der­ar­tig aus­geze­ich­neten Bei­trä­ge, dass die­se kos­ten­pflich­tig sind (eine ge­rin­ge Spen­de).
Nä­he­res dazu in der ange­sproch­enen Mail. Auch Wis­sen hat ei­nen Wert!

Wie eben schon dar­ge­legt habe ich auch ei­nen weit­eren Lö­sungs­weg in bekan­nter, aus­führlich­er Form er­stellt. Eine E‑Mail an mich mit dem Stich­wort/Be­treff $$ PQ: Spal­ten bed­ingt zusam­men­führen und Sie bekom­men von mir den entsprechen­den Link so­wie das erforder­liche Pass­wort zum öff­nen des Bei­tra­ges, so­fern Sie mir eine eine Spen­de von 5,00€ (Über­weisung, Donate-But­ton oder Pay­Pal Fre­und­schaft) ha­ben zukom­men las­sen. Und ver­sprochen, das geht auch pri­ma mit sehr vie­len Skills (und auch mit rel­a­tiv we­nig Auf­wand)!

Dieser Beitrag wurde unter Daten zusammenführen, Filtern & Sortieren, Ohne Makro/VBA, Power Query, Spalten bearbeiten, Text-Behandlung abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.