Excel之PowerQuery 逆透視的應(yīng)用
網(wǎng)友提問(wèn):



其實(shí)知識(shí)還是要你自己去學(xué)會(huì)的,先別處理自己工作中的問(wèn)題,學(xué)完后用自己掌握的知識(shí),處理自己的問(wèn)題,否則外人永遠(yuǎn)不懂您的業(yè)務(wù),永遠(yuǎn)不知道下一步你會(huì)遇到什么BUG。
PowerQuery和ExcelVBA的方法我都會(huì)給你,先發(fā)PowerQuery稍候發(fā)ExcelVBA的文章
學(xué)ExcelVBA看合集就可以了:https://www.bilibili.com/video/BV1rt4y1a72y
第1步:將原表導(dǎo)入PowerQuery

第2步:第1次逆透視
按住Ctrl鍵,選擇以下四列

依次點(diǎn)【轉(zhuǎn)換】~【逆透視】~【逆透視其他列】

返回結(jié)果:

我們把字段名改一下
返回結(jié)果:

選中:【款號(hào)】、【部位】、【顏色】這三列,刪除其它列,用鼠標(biāo)操作就好了【主頁(yè)】~【刪除列】~【刪除其它列】

第3步:第2次逆透視
復(fù)制上面逆透視的公式

= Table.UnpivotOtherColumns(更改的類(lèi)型, {"款號(hào)", "面料A", "面料B", "面料C"}, "部位", "顏色")

將?{"款號(hào)", "面料A", "面料B", "面料C"}? ?改成? ?{"款號(hào)", "顏色A", "顏色B", "顏色C"}
將??"顏色"??改成??"面料"

返回:

第4步:做合并
將“刪除其他列”那張表按列轉(zhuǎn)列表與“第2次逆透視”這張表的【面料】列合并后轉(zhuǎn)成表,加表頭

第5步:修改列
修改【部位】列,將顏色替換為空字符,最后用鼠標(biāo)去調(diào)一下列的順序。


現(xiàn)在說(shuō)一下進(jìn)階部分,因?yàn)槲覀冎皟纱文嫱敢暥际枪潭▽?xiě)法
= Table.UnpivotOtherColumns(更改的類(lèi)型, {"款號(hào)", "面料A", "面料B", "面料C"}, "部位", "顏色")
= Table.UnpivotOtherColumns(更改的類(lèi)型, {"款號(hào)", "顏色A", "顏色B", "顏色C"}, "部位", "面料")
問(wèn)題就在這紅色部分,假設(shè)以后有面料D、E、F...? ?顏色D、E、F
怎么辦?我們需要寫(xiě)動(dòng)態(tài)列表,替換它,我們先獲取字段名列表

我們要按紅色規(guī)律取一次,藍(lán)色規(guī)律取一次。我們學(xué)過(guò)表的循環(huán)取行,列表也是一樣,只是把Table改成List,功能上沒(méi)有區(qū)別

但是,列表這個(gè)功能的函數(shù)叫?List.Alternate? ?把后面的Rows取消掉了,因?yàn)楸碛行?,列表沒(méi)有行,只有元素個(gè)數(shù)。


把這兩個(gè)公式代替替換我們上面的固定寫(xiě)法就OK了。做好的課件我發(fā)到評(píng)論區(qū)了,可以下載學(xué)習(xí)。
以后我們?cè)黾有谢蛄?/p>
刷新生成的表


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