Excel之PowerQuery 不需要Switch函數(shù)
網(wǎng)友提問:

有基礎(chǔ)的小伙伴第一反映就是switch函數(shù),情況是這樣的:
excel工作表函數(shù)因?yàn)閕f函數(shù)嵌套麻煩,所以switch函數(shù)有市場(chǎng)
dax函數(shù)中的if函數(shù)也是一樣,所以switch函數(shù)在dax中經(jīng)常會(huì)用
但是,M函數(shù)中沒有if函數(shù),他用的是if語句。我在說話時(shí)也會(huì)經(jīng)常說混,但是心里明白誰是函數(shù),誰是語句,只是習(xí)慣都說成函數(shù)而已。
在Access里,我們講過ifs相當(dāng)于Excel中的if函數(shù),而if語句可以代替Switch函數(shù)的。
例如:
if? 條件1? then
? ? ?返回:張三
else if? 條件2? then
? ? ?返回:李四
else if??條件3? then
? ?? 返回:王五
else
? ? ?返回:孫興華
大家想一想,M函數(shù)中哪個(gè)函數(shù)不是? ?List.****? ? Table.****? ?等等,但是if語句沿用VBA的樣子
M函數(shù)確時(shí)可自定義函數(shù),但那是現(xiàn)有函數(shù)不能滿足你的需求,或是高手為了提速而使用的。你可以設(shè)想一下,用現(xiàn)有函數(shù)暫時(shí)都困難的新人,讓他自定義函數(shù),是不是更難呢?
比如網(wǎng)友這個(gè)問題:

我們導(dǎo)入PowerQuery,新建自定義列

現(xiàn)在就可以用Table.Group分組了。注意if語句的執(zhí)行順序,它先將分?jǐn)?shù)小于20的判斷出來,再判斷小于等于40的,最后判斷其它的。
如果你是在DAX里做這件事,詳見《DAX神功》文字版第四卷第2回

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