tft每日頭條

 > 圖文

 > powerquery函數提示不顯示

powerquery函數提示不顯示

圖文 更新时间:2024-09-23 02:41:36

powerquery函數提示不顯示(學會使用PowerQuery中的自定義函數)1

使用Power Query進行複雜一些的數據處理,離不開M函數,目前已經有超過700個函數了,基本上各式各樣的數據處理需求都可以使用M函數實現,如果你覺得這些還不夠,或者使用起來不是很方便,也可以在PQ中自定義函數。

自定義函數的語法

如果在M編輯器中看到這個符号: => ,就是有自定義函數在裡面,自定義函數的基本語法是:

函數名=(參數1,參數2,參數3……)=>表達式

函數名可以任意寫,隻要和M語言裡的關鍵字不要重複就行,參數至少有1個,放在括号中,如果有多個參數,以逗号分隔,=>後面就是自定義函數的表達式。

為了保證結果的準确性,可以預先限定參數的數據類型,假如有兩個參數a和b,限制為數值型,可以這樣寫:

函數名=(a as number,b as number)=>表達式

當然不限制也是可以的,不限制就是可以為任意類型。

參數還可以是可選的,在參數前加上optional就可以了,比如有兩個參數,第一個參數a,第二個參數b是可選參數,自定義函數這樣寫:

函數名=(a,optional b)=>表達式

這樣隻要輸入參數a,無論是否輸入參數b都可以調用這個自定義函數了。

自定義函數示例

我們先在Power Query編輯器中創建一個簡單的自定義函數,新建一個空查詢,在編輯器重輸入:= (x)=>{1..x},确定後出現參數調用窗口,

powerquery函數提示不顯示(學會使用PowerQuery中的自定義函數)2

這個自定義函數隻有一個參數x,生成從1到x的序列,指定為自定義函數後,左邊的空查詢類型就變成了fx,名稱可以根據自定義函數的含義進行重命名,這裡把函數名改成mylist。

參數x輸入10,點擊"調用":

powerquery函數提示不顯示(學會使用PowerQuery中的自定義函數)3

就生成了從1到10到一個序列。

自定義函數的參數不是每次都要手動輸入進去,同樣可以調用其他數據,比如将上面的這個序列轉化為表,然後添加一個自定義列=mylist([Column1])

powerquery函數提示不顯示(學會使用PowerQuery中的自定義函數)4

這個自定義列的每一行數據,就是從1到第一列數據的序列,

powerquery函數提示不顯示(學會使用PowerQuery中的自定義函數)5

從這裡也可以看出,自定義函數mylist可以和其他标準的M函數一樣使用。

自定義函數也并不是一定要提前定義好,還可以在需要的時候随時自定義,并立即使用,還是上面的這張表,需要對第一列累計求和,即計算從第一行到當前行的合計數。

添加自定義列,公式可以這樣寫:

累計=List.Sum(Table.SelectRows(轉換為表,(x)=>x[Column1]<=[Column1])[Column1])

powerquery函數提示不顯示(學會使用PowerQuery中的自定義函數)6

然後就生成一列累計數,和預想的一緻,

powerquery函數提示不顯示(學會使用PowerQuery中的自定義函數)7

其中(x)=>x[Column1]<=[Column1]就是一個自定義函數,該自定義函數作為Table.SelectRows的條件返回小于等于當前行的所有行,然後對篩選出的這些行的[Column1]列,使用List.Sum來求和。

不過這種在某個步驟中使用的自定義函數,隻能供該查詢使用,而前面生成的自定義函數mylist,可以供該文件内的所有查詢使用。

其實前面的文章中也使用過自定義函數,比如使用M生成日期表就使用了自定義函數,

powerquery函數提示不顯示(學會使用PowerQuery中的自定義函數)8

可以點擊圖片查看該文,了解利用自定義函數制作日期表的用法。

通過以上的介紹,基本可以對自定義函數有個初步的了解,其實自定義函數的用法很廣泛,以後在進行複雜的數據處理時還會經常用到它。

公衆号回複「PowerBI」,獲取145頁入門電子書,2019年,送自己一個技能!

THE END

.

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved