乾貨丨Power Query 資料型別及資料結構

2021-09-20 07:39:42 字數 3611 閱讀 1614

前言

晦澀難懂的it語言到此為止,說點好懂的就是使用power query可以幫助各位早幹完活兒早回家、可以幫助大家在團隊中脫穎而出公升職加薪。未來你說你不懂power query,可能在「表圈」就混不下去了。

在眾多power query的使用者中也是存在鄙視鏈的:

m函式是power query專用的函式語法,使用m函式可以幫助我們自由靈活地完成資料匯入、整合、加工處理等任務工作。power query的介面操作只能發揮其全部能力的20%,剩餘80%的能力都要通過m函式來實現。

m函式在使用方法上與excel的基本函式功能完全不同,m函式更像是一門專用於資料處理的程式語言,學習m函式首先我們要了解它的基本表示式、資料型別以及資料結構。下邊就著重為大家介紹這三方面內容。

※大家可以在power query的查詢編輯器內新建空查詢,並在檢視選項卡內的高階編輯器中複製案例**了解每個案例**的執行結果。

※ //符號為m語句的注釋符

m函式基本表示式:

let…in…結構:

let用於封裝計算結果,並為計算結果命名。

in用於顯示結果

例:

let  

source = text.proper("hello world")

in

source

解說:

通過let語句將text.proper(「hello world」)函式的計算結果封裝到名叫source的變數中,再通過in語句顯示source變數的內容「hello world」。

m函式基本變數:

自定義函式:

函式名 = (引數1,引數2,引數3……) => 函式運算表示式

※通過呼叫函式得到的函式返回值稱為函式值

例:

let  

myfunction = (parameter1, parameter2) =>(parameter1+ parameter2) / 2

final = myfunction(2,4)

in

final

解說:

以上**執行結果為3,先在let中建立名為myfunction的自定義函式,函式有parameter1和parameter2兩個引數,函式的運算表示式為(parameter1 + parameter2) / 2,之後在let中使用2與4兩個引數呼叫myfunction函式,myfunction函式將運算結果返回給變數final,最後在in中顯示final變數的內容3。

結構化數值

1.列表(list):

列表是擴在花括號中的一組資料,列表中每個資料都有屬於自己的序號以便自己能夠被檢索到,列表中的資料序號從0開始按照排列順序依次整數遞增,大列表內還可以巢狀子列表、記錄等。花括號除了用來括起列表內的所有資料還用來指定列表內資料的序號,通過指定資料序號可以從列表內找到並獲取所需的資料值。

2.記錄(record):

記錄用來定義欄位和給字段賦值,乙個欄位由欄位名以及欄位內的值組成,欄位名是唯一的文字值,是字段的識別符號。欄位名可以不用引號引用,欄位名有兩種表達形式:

不加""的表達形式、例如orderid

加#和""的表達形式、例如#"today's data is:"

記錄中的內容寫在括號內,括號同樣用於在記錄中取特定欄位的值。

例1:定義字以及顯示記錄內所有內容

let source =   

[ orderid = 1,

#"customerid" = 1,

item = "fishing rod",

price = 100.00

] in source

例2:定義字以及顯示記錄內[item]欄位的值

let source =  

[ orderid = 1,

#"customerid" = 1,

item = "fishing rod",

price = 100.00

] in source[#"customerid"] //equals 1

表(table):

表是由行列資料構成的,可以使用隱式或顯示方式定義字段(列)的資料型別。使用#table建表時,可以使用列表或者記錄來定義列名,並使用巢狀列表來定義表中的資料,巢狀列表的大列表內包含所有定義單行用的子列表,而每個子列表則用來定義一行資料。花括號{}可以用來索引查詢指定行的資料。

例1:隱式字段表

let  

source = #table(

,

,

})

in source

例2:顯示字段表

let  

source = #table(

type table [orderid = number, customerid = number, item = text, price = number],

,

} )

in source

例3:建表後取表中第一行資料

let  

source = #table(

type table [orderid = number, customerid = number, item = text, price =number],

,

} )

in source

其他資料結構案例:

資料結構中可以包含任意m值,以下為一些案例:

例1:復合資料結構的列表

let  

source =

in

source

例2:包含子列表的記錄

let  

source = [customerid = 1, name = "bob", phone ="123-4567", orders =

] in

source

if表示式:

if表示式通過對邏輯條件進行判斷來對兩個表示式進行選擇。

例:

if 2 > 1 then 

2 +2

else

1 +1

解說:

在上述案例中,因為判斷條件2>1的邏輯值為真,所以執行第乙個表示式2+2,所以執行結果為4,如果判斷條件改為2<1,則其判斷條件的邏輯值為假,所以會執行第二個表示式1+1,此時的執行結果為2.

乾貨丨RPA工程中的資料處理問題

文丨鄂攀 首先,拿乙個標準化操作流程sop來說,按基本流程比方說就是a b c d。那麼開發過程中,是不是也必須就要這樣做呢,答案是no。因為客戶大多是業務人員,對於技術的理解可能很少,通常情況下他們之所以那樣做是基於前端頁面和自己知道的簡單資料處理可以通過那樣的方式,一步一步得到自己想要的輸出檔案...

乾貨分享丨Linux系統下強大的ethtool命令

ethtool 提供了強大的網絡卡及網絡卡驅動管理能力,其具體的實現框架和網路驅動程式及網路硬體關係緊密,容易修改和擴充套件,能夠為 linux 網路開發人員和管理人員提供對網絡卡硬體,驅動程式和網路協議棧的設定,檢視以及除錯等功能。描述 ethtool 是用於查詢及設定網絡卡引數的命令。使用 et...

乾貨丨初級會計考題 技巧 方法分析

磨刀不誤砍柴工。為了幫助小夥伴們清晰認識 初級考試難度及特點 以供參考 題型 題量及分值 初級會計實務 經濟法基礎 題型特點及答題技巧 找對方法 快速記憶 1.編口訣記憶法 利用漢子同諧音或編順口溜的方式將所要記憶的內容濃縮成一兩句話。2.數字組合記憶法 教材中,關於數字的內容較多,歸納起來,大致可...