首頁>Club>
如圖所示,希望將圖1中的號段資料轉化成如圖2所示的式樣,使用Power Query可以實現麼?
23
回覆列表
  • 1 # 老王Excel

    先佔個前排,明天來回答!

    -----------------------------------

    提問的Excel老大哥給出了常規的方法,那我只好用寫PQ公式的方法了。

    -----------------------------------

    第一步、將資料載入到PQ

    資料選項卡-從表格,資料就載入到PQ。

    二、拆分組合資料

    新增列-自定義列,寫上公式:

    ={Number.From(Text.Range([號段],0,5))..Number.From(Text.Range([號段],6,5))}

    這裡分別用“-”左右邊的數字構造列表,其中Text.Range函式類似工作表函式Mid,但是因為出來的結果是文字,所以用Number.From轉換為數字;

    這裡因為號段長度是統一的,所以直接寫的0位開始取5位和6位開始取5位(注意PQ裡的起始位置是0),如果號段長度不一致,可以用Text.PositionOf來確定符號“-”的位置,類似於工作表函式Find;這裡的操作和上面老哥的操作其實原理一致,只不過這裡不會產生多餘的列。

    三、擴充套件到行

    以下是做好的結果

  • 2 # 精進Excel

    這樣的資料拆分,使用Excel完成的難度非常大,而用Power Query則很簡單。

    Step1:將表格匯入查詢編輯器

    Step2:對號段列進行拆分

    Step3:新增自定義列

    ①切換到【新增列】選項卡,然後單擊【新增自定義列】,如圖所示:

    ②在彈出的【新增自定義列】對話方塊中,設定新列名為【號碼】,自定義列公式為={[號段.1]..[號段.2]},這樣資料表就添加了一個新的資料列。

    展開後的結果

    完成後,生成的資料表就是按照號段拆分後的資料表:

    補充:

    自定義列公式={[號段.1]..[號段.2]},表示生成從一個初始值到一個結束值的List清單。

  • 3 # Excel辦公實戰

    使用Power的List結合展開輕鬆搞定

    一句搞定的方式:= Table.ExpandListColumn(Table.TransformColumns(源,{{"號段",each Expression.Evaluate("{"& Text.Replace(_,"-","..")&"}")}}),"號段")

    如果是新手參考下方的逐步完成!!

    1、加工資料進Power Query(後面簡稱PQ)2、輸入M函式公式

    = Table.TransformColumns(源,{{"號段",each Expression.Evaluate("{"& Text.Replace(_,"-","..")&"}")}})

    這裡我們使用Replace替換為兩個點後使用Evaluate來轉換為列表

    完成效果圖

  • 中秋節和大豐收的關聯?
  • 七龍珠系列裡你最喜歡哪些招式?