小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

PQ | 分類匯總?局部分組?

 Excel辦公實(shí)戰(zhàn) 2021-06-29

如果你經(jīng)常使用Excel中分類匯總,那么你一定要學(xué)習(xí)一下PQ中分組依據(jù)(Table.Group),他可以說(shuō)是對(duì)分類匯總進(jìn)行了系統(tǒng)全面的增強(qiáng)和升級(jí)

直接上來(lái)就講PQ中的Table.Group估計(jì)很多人都要懵,所以我們先來(lái)通過(guò)大家熟悉的功能引入!

引子 | Excel基礎(chǔ)功能-分類匯總

這樣的數(shù)據(jù),我們先按照銷售員做一個(gè)匯總,并且可以看到明細(xì),這個(gè)時(shí)候,我們就可以使用分類匯總

動(dòng)畫操作演示

1、對(duì)分組的銷售員排序

2、點(diǎn)擊【數(shù)據(jù)】-【分類匯總】

本質(zhì)是分組+聚合!但是PQ中的分組功能,做了增強(qiáng)了,是那種真正的增強(qiáng)了很多!

類似的功能,我們看看PQ如何處理-分組依據(jù)(Table.Group)

關(guān)于如何把數(shù)據(jù)加入到PQ編輯器等基礎(chǔ)問(wèn)題,這里就不再啰嗦,因?yàn)榍懊嬉呀?jīng)寫過(guò)基礎(chǔ)專題,推薦0基礎(chǔ)閱讀一下,構(gòu)建基本的知識(shí)框架

PQ 第一期 | Power Query是什么?怎么學(xué)?

PQ 第二期 | 懂Excel為什么還是學(xué)不好PQ?

PQ 第三期 | M函數(shù)基礎(chǔ)及上下文詳解

下面,我們直接來(lái)看功能演示及講解!

PQ中的分組依據(jù)功能,使用界面操作,也是分兩步

①:分組 - 根據(jù)那(幾)個(gè)列把內(nèi)容分成幾組

②:聚合 - 對(duì)每一組中指定的列進(jìn)行聚合操作(如求和、平均等)

PQ中不僅僅可以進(jìn)行類似分類匯總的常規(guī)數(shù)組聚合操作,可以還是可以對(duì)一些文本進(jìn)行聚合處理,比如文本使用指定分隔符連接到一起等!

下面是我們通過(guò)界面操作,自動(dòng)生成的M函數(shù)公式,有點(diǎn)像錄制宏!


下面我們會(huì)對(duì)Table.Group函數(shù)做一些基礎(chǔ)講解!

入門 | Table.Group函數(shù)基礎(chǔ)語(yǔ)法

通過(guò)上面的引子,我們大概了解了Table.Group,下圖就是Table.Group函數(shù)的基礎(chǔ)語(yǔ)法拆解,說(shuō)明都通過(guò)注釋的方式在圖中說(shuō)明,先有一個(gè)大概的了解,我們?cè)倏磧蓚€(gè)案例鞏固

第一參數(shù)比較好理解,就是一個(gè)加載到PQ中的表,部分同學(xué)不太理解第二、三參數(shù)

下面通過(guò)一個(gè)案例說(shuō)明一下,第二、三參數(shù)

案例:理解第二、三參數(shù)

▼ 格式化一下代碼,加上注釋

對(duì)照著我們的手工操作,大家對(duì)Table.Group前三個(gè)參數(shù)應(yīng)該有了進(jìn)一步的認(rèn)識(shí)、一般我們熟悉后,可以自己來(lái)書寫,每個(gè)分組的第三參數(shù)是指定類型,也可以不寫。

基礎(chǔ) | 文本聚合問(wèn)題

上面我們說(shuō)到PQ中分組可以對(duì)文本進(jìn)行聚合,大大增強(qiáng)了分組匯總功能,不過(guò)我們看到默認(rèn)的操作界面是沒(méi)有關(guān)于文本的處理的,需要我們自己來(lái)寫!

▼ 文本聚合

新手階段,我們可以使用分組依據(jù)功能+修改來(lái)處理,等大家熟悉了之后就可以直接手工來(lái)寫M函數(shù),跟VBA學(xué)習(xí)中的從錄制宏,修改宏,到手寫VBA差不多!

我們把之前界面操作生成的一些List.Sum求和等按照自己的需求修改為文本拼接函數(shù)Text.Combine即可輕松按地區(qū)把姓名按照指定分隔符聚合到一列!當(dāng)然我們單獨(dú)的演示聚合

= Table.Group(源, {"地區(qū)"}, {{"銷售員", each Text.Combine([銷售員],"/")}})

我們對(duì)姓名去重-List.Distinct,實(shí)際可以去重合并

▼ 去重+合并

以上幾個(gè)案例,想必大家對(duì)Table.Group已經(jīng)有了一些基礎(chǔ)的認(rèn)知,完成一些常規(guī)的分組聚合應(yīng)該完全OK了。鋪墊了那么多,下面才是我們今天的硬核知識(shí) - 局部分組問(wèn)題!

我們都是對(duì)指定列的內(nèi)容全部相同的分到一組,這其中知識(shí)把分類匯總的過(guò)程在內(nèi)部完成了,但是有的需求,不做排序,我們只需要判斷連續(xù)的內(nèi)容。

這里就要說(shuō)到Table.Group的第四和第五參數(shù)!

進(jìn)階 | Table.Group 局部分組-第三參數(shù)

為了大家更好的理解局部分組,我們先來(lái)看一個(gè)簡(jiǎn)單的案例

參數(shù),決定了,我們是全局還是局部分組

第三參數(shù):1或者不寫,默認(rèn)全局分組,所謂全局,就是掃描這個(gè)字段,把相同的全部分到一組,這個(gè)你直接案例分類匯總理解即可

第三參數(shù):0局部分組,局部相對(duì)全局,從上往下相同的分到一組,遇到不同的就停止,分為下一組

比如上面,我們看到李四有兩組 811.4正好是最后三個(gè)數(shù)的合計(jì)

關(guān)于局部分組的規(guī)則,其實(shí)我們還可以自己來(lái)定義,這也是第五參數(shù)的作用,自由度越大,相對(duì)也就越難,這個(gè)道理大家應(yīng)該能明白!

高階 | Table.Group 局部分組-自定義規(guī)則

默認(rèn)情況,局部分組就是從上往下,遇到不同,上面的內(nèi)容就分為一組,這里的判斷邏輯有兩個(gè),一個(gè)是基準(zhǔn)點(diǎn)(x),一個(gè)是下一個(gè)不同(y)

具體運(yùn)行規(guī)則,我們還是來(lái)看案例

案例:整理小組成員

這里我們的分組依據(jù)就是是否內(nèi)容包含組,如果是我們就分成一組

= Table.Group( 源,"內(nèi)容",{"組員",each _}, 0, (x,y)=>Byte.From(Text.EndsWith(y,"組")))

核心內(nèi)容就是 (x,y)=>Byte.From(Text.EndsWith(y,"組")),下面我們來(lái)拆解一下運(yùn)行邏輯

初始x就是首個(gè)內(nèi)容,下面的每一個(gè)都是y,然后我們直接自己寫的邏輯判斷,是否已組結(jié)尾

判斷的結(jié)果無(wú)法是True或者False,當(dāng)是True的時(shí)候停止,True上面的內(nèi)容分組一組,True的位置變成新的x,x下面的內(nèi)容是新一次的y

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多