
区切られたユーザーと階層内の割り当てられたレベルのリストがあります。各ユーザーを独自の行に配置しながら、元のユーザーに割り当てられたレベルを維持したいと考えています。
まず最初に、次のことを始めます。
最後に、次のことを述べたいと思います。
何百もの行と複数の階層レベルがあるため、列とコピーにテキストを入力するだけでは時間がかかりすぎます。
可能であれば、VBA を使用しないソリューションを希望します。
答え1
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)))
;
基本的に、(ユーザー) 範囲内でテキストを分割しますus
。次に、(階層) 範囲内で行ごとに値を繰り返しますhr
。次に、それらを水平に積み重ねます。
次に、REDUCE は各行の出力を垂直に積み重ねます。最後に、ttl
(タイトル) 範囲を積み重ねます。
答え2
- データ範囲を選択して
INSERT
メニューへ進む
- 必要に応じて選択し
TABLE
、チェックを入れたり外したりします。My Table Has Headers
- データ範囲を選択し、
DATA
メニューに移動してクリックしますFrom Table/Range
- で
Power Query Editor
を選択しcolumn1
、 をクリックしてSplit Column
、 をクリックしますBy Delimiter
。
;
カスタム区切り文字として を入力し、 をクリックしますokay
。
Column2
ドロップダウンを選択してUnpivot Columns
から を選択しますUnpivot Other Columns
。
- 列を選択します
Attribute
。
- 列を右クリックして選択
Remove
- メニューから
HOME
クリックClose and Load