Power BI中使用M公式或者DAX公式手工建立表的4種方法

是小必,很高興在這裡遇見你,以Excel和Power BI會友。

本期內容主要講解如何在Power BI或者Excel中的Power Query與Power Pivot中直接使用函式來建表。主要會使用到以下的函式。其中DAX函式有:DATATABLE和SELECTCOLUMNS函式,M函式會使用到#table和Table.FromRecords.

1

使用DAX函式建表

(1)DATATABLE函式

通DATATABLE函式主要是用來手工建立表的函式。

功能

:建立以內聯方式定義的資料表。

語法

:DATATABLE(名稱1,型別1,名稱2,型別2,……,資料)

這個語法相對比較簡單,其中型別主要有BOOLEAN,CURRENCY,DOUNBLE,INTEGER,STRING。這麼種分別布林型,貨幣型,雙精度型,單精度型和文字型。

根據上述來構建一個表:

具體程式碼如下:(向左划動可看全)

這個函式非常要注意,最後一個引數,是以list的方式來呈現,類似於Power Query中的M的語法,每一個為一個list。

(2)SELECTCOLUMNS函式

功能

:選擇列中的表或者建立新列。

語法

:SELECTCOLUMNS(表,[名稱1],[表示式1],……)

SELECTCOLUMNS以{}建立一個表,如果SELECTCOLUMNS+{}則建立一個空表;如果不反指定標題,那麼會返回Value1,Value2……。該函式在建立表時可以不指標欄位的型別。

可以構建以下的表:

程式碼如下:(向左划動可看全)

2

Power Query中的M函式建表

(1)#table函式建表

透過#table函式就可以建立表,這個函式是#開頭的,函式名稱是小寫。

功能

:從列columns和列表rows建立一個表值。

語法

:function (columns as any,rows as any) as any

上面的語法,可能是真的看不懂,那麼翻譯成人話就是:

如構建一個表為:

其公式可以寫成:

但是透過上面建立的表是沒有欄位的型別的。下面這種方法可以構建帶有欄位型別的表。如將上面的表建立成帶有欄位型別,即“姓名”為文字型,“性別”為文字,“年齡”為數字,“民族”為文字,再新增一個日期列,內容為null值。

其公式可以寫成:(向左划動可看全)

與上面的公式不同的是,這裡的#table的第一個引數使用了Record的方法,並且使用type table 指定了每個欄位的型別。第二個引數與上面的是一樣的。

實際使用過程中最常用的還是第一種方法,直接瞭解,可以直接透過函式或者手動書寫第一個引數,但用第二個方法就有些麻煩。

(2)Table.FromRecords函式建表

還有一個建表的方法,就是先根據Power Query中的記錄來生成需要的記錄,再使用Table。FromRecords來轉換成表。

具體程式碼如下:(向左划動可看全)

這個方法在Power Qeury直接建表的也是很方便的。

END

我的圖書在京東與噹噹的連結可檢視以下:

點下在看,點贊,分享,你最好看

TAG: 函式power建表建立SELECTCOLUMNS