
Ich habe eine Liste abgegrenzter Benutzer und deren zugewiesene Ebenen in einer Hierarchie. Ich möchte jeden Benutzer in einer eigenen Zeile haben, aber die dem Original zugewiesenen Ebenen beibehalten.
Hier ist, womit ich beginne:
Benutzer | Level 1 |
---|---|
[email geschützt];[email geschützt];[email geschützt] | Region 1 |
Zum Abschluss möchte ich Folgendes sagen:
Benutzer | Level 1 |
---|---|
[email geschützt] | Region 1 |
[email geschützt] | Region 1 |
[email geschützt] | Region 1 |
Ich habe Hunderte von Zeilen und mehrere Hierarchieebenen, sodass das bloße Aufteilen von Text in Spalten und Weiterverarbeiten zu zeitaufwändig ist.
Ich würde wenn möglich eine VBA-freie Lösung bevorzugen.
Antwort1
Mit Office 365:
=LET(
us,A2:A201,
hr,B2:D201,
ttl,A1:D1,
VSTACK(ttl,DROP(REDUCE("",us&"|"&BYROW(hr,LAMBDA(z,TEXTJOIN("{",FALSE,z))),LAMBDA(a,b,LET(c,TEXTAFTER(b,"|"),VSTACK(a,HSTACK(TEXTSPLIT(TEXTBEFORE(b,"|"),,";"),DROP(TEXTSPLIT(REPT(c&"}",ROWS(TEXTSPLIT(b,,";"))),"{","}"),-1)))))),1)))
Grundsätzlich wird der Text im ;
( us
Benutzer-)Bereich aufgeteilt. Dann wiederholt es die Werte zeilenweise im hr
(Hierarchie-)Bereich. Dann stapelt es sie horizontal.
Das REDUCE stapelt dann die Ausgabe jeder Zeile vertikal. Schließlich stapeln wir den ttl
(Titel-)Bereich.
Antwort2
- Wählen Sie den Datenbereich aus und gehen Sie zum
INSERT
Menü
- Wählen Sie die entsprechenden Optionen aus
TABLE
bzw. aktivieren bzw. deaktivieren Sie sie .My Table Has Headers
- Wählen Sie Ihren Datenbereich aus, gehen Sie zum
DATA
Menü und klicken Sie aufFrom Table/Range
Power Query Editor
Wählen Sie in auscolumn1
, klicken Sie aufSplit Column
und klicken Sie aufBy Delimiter
.
- Geben Sie
;
als benutzerdefiniertes Trennzeichen ein und klicken Sie aufokay
.
- Wählen Sie
Column2
dann das Dropdown-MenüUnpivot Columns
und wählen Sie dannUnpivot Other Columns
.
- Wählen Sie die
Attribute
Spalte aus.
- Klicken Sie mit der rechten Maustaste auf die Spalte und wählen Sie
Remove
- Klicken Sie im
HOME
Menü aufClose and Load