將具有層次結構層級的分隔值轉換為單獨的分配

將具有層次結構層級的分隔值轉換為單獨的分配

我有一個分隔使用者及其在層次結構中分配的層級的清單。我想讓每個用戶都在自己的行上,但保持分配給原始用戶的等級。

這就是我的開頭:

這就是我想結束的:

我有數百行和多個層次結構,因此僅將文字添加到列和 c/p 就太耗時了。

如果可能的話,我更喜歡無 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

  1. 選擇資料範圍並進入INSERT選單

在此輸入影像描述

  1. 根據需要選擇TABLE並選取/取消選取。My Table Has Headers

在此輸入影像描述

  1. 選擇您的資料範圍,轉到DATA選單並點擊From Table/Range

在此輸入影像描述

  1. 在 中Power Query Editor,選擇column1、單擊Split Column,然後按一下By Delimiter

在此輸入影像描述

  1. 輸入;您的自訂分隔符號並點擊okay

在此輸入影像描述

  1. 選擇Column2下拉式選單Unpivot Columns,然後選擇Unpivot Other Columns

在此輸入影像描述

  1. 選擇Attribute列。

在此輸入影像描述

  1. 右鍵單擊列並選擇Remove

在此輸入影像描述

  1. HOME選單中,按一下Close and Load

在此輸入影像描述

相關內容