
구분된 사용자 목록과 계층 구조에 할당된 수준이 있습니다. 각 사용자를 자신의 행에 두고 싶지만 원본에 할당된 수준을 유지하고 싶습니다.
이것이 내가 시작하는 것입니다:
이것이 제가 마무리하고 싶은 것입니다:
수백 개의 행과 여러 수준의 계층 구조가 있으므로 텍스트를 열과 c/p로 변환하는 데 시간이 너무 많이 걸립니다.
가능하다면 vba-free 솔루션을 선호합니다.
답변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