我
是小必,很高興在這裡遇見你,以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
我的圖書在京東與噹噹的連結可檢視以下:
點下在看,點贊,分享,你最好看