回覆列表
-
1 # 老王Excel
-
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來轉換為列表
完成效果圖
先佔個前排,明天來回答!
-----------------------------------
提問的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;這裡的操作和上面老哥的操作其實原理一致,只不過這裡不會產生多餘的列。三、擴充套件到行
以下是做好的結果