Excel之PowerQuery 換個(gè)方式提問對大家都好
網(wǎng)友提問:

放大圖片

回答網(wǎng)友問題
您確實(shí)發(fā)我文件了。。。但是數(shù)據(jù)這個(gè)東西很神奇,天天接觸的人會覺得這個(gè)表很簡單,非本職工作的人會覺得這個(gè)表好復(fù)雜呀。。。
其實(shí)這個(gè)表不復(fù)雜,您最終的目的也非常的簡單的
就是要把下表

變成:

(1)導(dǎo)入數(shù)據(jù)到PQ

點(diǎn)下圖紅圈部分改成日期類型

(2)按住Ctrl用鼠標(biāo)左鍵選中前3列,【轉(zhuǎn)換】-【逆透視】-【逆透視其他列】,得到結(jié)果

點(diǎn)下圖紅圈的位置,把值這列改成文本

(3)分組
現(xiàn)在公式中的x代表數(shù)據(jù)列的每個(gè)Table

我們再對每個(gè)Table按日期分組
這時(shí)紅框里面的代碼代表數(shù)據(jù)列的每個(gè)Table,而y代表每個(gè)Table里面的數(shù)據(jù)2那列的每個(gè)Table

我們點(diǎn)進(jìn)去看一下數(shù)據(jù)列的其中一個(gè)Table??纯次覀兌夹枰男?shù)據(jù)

既然y是數(shù)據(jù)2列的每個(gè)Table
y[日期]{0}? 代表數(shù)據(jù)2列的每個(gè)Table日期列的第1個(gè)值,把這個(gè)值轉(zhuǎn)成通過Date.ToText可以轉(zhuǎn)成文本,也可以通過第2參數(shù)自定義你需要的格式。

y[屬性] 和? y[值]? 這兩個(gè)列可以通過List.Zip進(jìn)行列表“壓縮”

相當(dāng)于??
?y[屬性]? ?= {"語文","數(shù)學(xué)","英語"}
?y[值]? ?= {"87","24","77"}
List.Zip({?y[屬性] ,y[值]??})? ={{"語文","87"},{"數(shù)學(xué)","24"},{"英語","77"}}
我們可以使用List.Transform遍歷上面列表中每一個(gè)小列表,再使用Text.Combine對上面大列表中的每個(gè)小列表進(jìn)行合并以冒號做分隔符

得到:?{"語文:87","數(shù)學(xué):24","英語:77"}
再用 Text.Combine({"語文:87","數(shù)學(xué):24","英語:77"},";")? 得到??"語文:87、數(shù)學(xué):24、英語:77"
再用? Date.ToText(y[日期]{0}) & "? ?" &??"語文:87、數(shù)學(xué):24、英語:77"
得到:? "2023/4/1??語文:87、數(shù)學(xué):24、英語:77"

取數(shù)據(jù)2這列

再通過回車換行符使用每個(gè)List變成字符串

最終代碼:

上載后

別忘記改一下單元格設(shè)置,選中B列,鼠標(biāo)右鍵~設(shè)置單元格格式

返回最終結(jié)果:


方法不只一種,我是隨便寫一種,也許其它小伙伴有更簡單的方法,可以拿出來分享
對與錯(cuò)? 或是否考慮全面都不重要,重要的是分享,給人更多選擇,別吝嗇你的答案。
學(xué)習(xí)最好的方式是把你學(xué)到的知識講出來發(fā)到B站,并義務(wù)在B站回答網(wǎng)友問題,眼界寬了才能增長知識!
技能就和金庸武俠一樣,每個(gè)階段的人會有不同的感悟,可能有一天,我也會變成歐陽峰前輩后期那樣:張口就是內(nèi)層、外層、隱形、顯形、黃蓉不講《九陰真經(jīng)》原理扎心呀。如果那天真的來了,你們一定要把我送回小學(xué)二年級第一學(xué)期,讓我重學(xué)乘法口訣。

PowerQuery合集:https://www.bilibili.com/video/BV1oa4y1j75e