Excel之PowerQuery 提取單元格指定文字并轉(zhuǎn)換格式
網(wǎng)友問題:

圖片放大:


把網(wǎng)友問題轉(zhuǎn)成中文說:
第1個需求:取每個單元格孫興華之后的2至3行

第1個知識點:添加列

如下圖所示,下劃線代表每個記錄

我們?nèi)∶總€記錄的內(nèi)容字段,現(xiàn)在的[內(nèi)容]代表每個單元格中的文本

第2個知識點:取指定字符之后的值


第3個知識點:換行符

第4個知識點:文本分割


我們?nèi)∶總€List第3和第4個數(shù)據(jù),就是孫興華后面的第2~3行
第5個知識點:取列表中的元素



到了這一步是個分界點,實現(xiàn)兩個需求都從這一步開始

需求1,文本合并


需求2,回到分屆點那里,繼續(xù)思考

我們需要遍歷每個List中的每個值

現(xiàn)在這個x代表每個List中每行的文本

再對每個值通過冒號(注意全角與半角)分割成List

隨便點一個List進(jìn)去看看


這不就是一張表中的兩個列嗎?

如下圖所示,轉(zhuǎn)成的表需要將表頭提升



既然網(wǎng)友都說了,取2~11列,那就不存在動態(tài)表頭問題了,這里直接展開即可。
如果需要動態(tài)表頭,取每個Table的表頭成一張列表去重得到唯一值,以前已經(jīng)多次講過了。

返回結(jié)果:

好的,現(xiàn)在我把第1個需求和第2個需求的代碼發(fā)出來
第1個需求:
第2個需求:
友情提示:上載后設(shè)置單元格自動換行

我個人認(rèn)為第2個需求應(yīng)該如上圖方案顯示,如果按網(wǎng)友要求顯示,我們先回到這一步

對每個List進(jìn)行合并


如果List中有4個元素,那將來的表頭就是? 項目1、內(nèi)容1、項目2、內(nèi)容2??
我們使用 List.Count 算出每個List有多少個數(shù),除2

假設(shè)有四個元素,我們要 項目1、內(nèi)容1、項目2、內(nèi)容2? 是兩對兒
List.Count(*****) / 2
我們可以寫成{"1"..List.Count(*****) / 2}? 然后遍歷這個列表,讓他變成我們需要的表頭

現(xiàn)在表頭有了,我們把之前的列表按行轉(zhuǎn)成表,加上表送就可以了

我們將它按行轉(zhuǎn)表

先把表送寫固定

最終結(jié)果:

最終結(jié)果的代碼如下:
展開后

本文章配套課件已發(fā)到評論區(qū)

PowerQuery合集:https://www.bilibili.com/video/BV1oa4y1j75e
更多教程:https://www.bilibili.com/read/cv10222110