PowerBI開發 第九篇:修改查詢

在PowerBI的查詢編輯器(Query Editor)中,用戶可使用M語言修改Query,或修改Query字段的類型,或向Query中添加數據列(Column),對Query進行修改會致使PowerBI相應地更新數據模型(Data Model),這跟使用DAX表達式修改Data Model有本質的區別:前者是修改數據表,後者是修改數據視圖。PowerBI經過查詢編輯器來修改數據模型,對Query的每一次修改都是一個step,用戶能夠根據須要增長或刪除step,調整step的順序,並能夠迭代引用先前建立的step,應用這些操做對數據進行再次加工和處理,以知足數據分析的需求。html

 

個人PowerBI開發系列的文章目錄:PowerBI開發編輯器

一,修改數據類型

每個Query都是由一系列的列和行構成的數據表,每一列都有特定的數據類型,PowerBI爲每一個數據類型顯示特定的圖標,最經常使用的數據類型是number和text,例如:函數

123表示當前列是數字類型,ABC表示當前列是字符類型。有時,從外部數據源導入數據以後,PowerBI不能肯定數據的類型,此時,它會在列前方同時標記爲123和ABC,用戶能夠經過」Change Type「把該列轉換爲合適的數據類型。spa

二,添加數據列

用戶能夠添加計算列,從主菜單中切換到」Add Column「面板,點擊」Custom Column「,基於M公式建立新的數據列。3d

從左側可用的列中,添加列和公式,PowerBI基於用戶輸入的表達式建立新的計算列,並添加到數據模型(Data Model)中:code

 

三,添加排序列

在對數據進行排序時,有時不能使用DAX表達式,此時必須使用M公式,例如,對班級(Class)進行排序,使用DAX的IF函數,按照班級(Class)名稱新建一個字段(Class Ordinal),orm

Class Ordinal = IF(Schools[Class]="一年級",1,IF(Schools[Class]="二年級",2,3))

設置Class按照Class Ordinal排序,PowerBI會拋出錯誤:htm

在這種狀況下,必須使用M公式,在Schools Query中新增字段:blog

= Table.AddColumn(KustoQuery, "Class Ordinal", each if [Class]="一年級" then 1
    else if [Class]="二年級" then 2
    else if [Class]="三年級" then 3
    else 4)

四,查詢組合

查詢的組合(Combine),用於在Query級別對數據進行修改,PowerBI支持Merge和Append,你使用Merge操做鏈接數據,或使用Append操做追加數據。排序

1,數據的鏈接

把查詢鏈接到一塊兒,可使用Home菜單中」Merge Queries as New「,經過鏈接操做(Join)把兩個Query合併,生成新的Query。

PowerBI在進行Merge時,只支持等值條件的鏈接操做,等相應字段的值相等時,匹配成功。

例如,選擇 EventSoldService 做爲其中一個Query,點擊EventId,做爲鏈接的條件,第一個表稱做左表,第二標稱做右表:

也能夠選擇多個數據列做爲鏈接條件,摁住Ctrl,連續點擊EventId,SoldServiceId,就能夠把這個字段做爲鏈接:

在進行Merge操做時,PowerBI提供多種鏈接的類型,以下:

在建立Merge查詢以後,默認狀況下,PowerBI會把鏈接的右表顯示在左表字段的末尾,字段名爲右表名,而字段值爲"Table",以下圖:

用戶能夠點擊該列上方的圖標, 對右表進行擴展(Expand)或聚合(Aggregate)操做,擴展操做是指在最終的查詢中顯示右表的字段,聚合操做是對右表的相應字段進行聚合操做,返回聚合值。

 

2,數據的追加

對於一個Query,使用PowerBI能夠追加數據,把另外一個Query的數據追加到當前Query之中,這至關於集合的Union操做。

選中當前Query,點擊「Append Queries」,能夠追加一個Query,或多個Query。

而用於追加的Query,能夠不顯示在Report視圖中,使這些Query僅僅用於提供數據。 

五,轉換操做

在查詢編輯器中,能夠對數據作變換操做(Transform),例如,分組、字符的拆分、透視、逆透視、去重和替換值等。

1,分組

Group By用於按照特定的列對現有的查詢進行分組聚合,產生新的Query。

2,拆分字符

把一個字符類型Column按照分隔符,或者特定數量的字符,分割成多個數據列。

3,透視和逆透視

Pivot Column 用於對數據進行透視操做,Unpivot Column 用於對數據進行逆透視操做,完成數據的行列轉換。

六,Query的其餘操做

對Query分組,分組的目的是組織Query,便於查找。當Query的數量很是多時,能夠按照功能或Page對不一樣的Query分組。

Query是否啓用加載,是否包含在報表刷新中?

若是啓用了「Enable load」,那麼Query的數據會顯示在Report View中;若是啓用了」Include in report refresh「中,Query能夠隨着報表的刷新而自動刷新數據。

 

參考文檔:

Power Query M Reference

Add a custom column in Power BI Desktop

相關文章
相關標籤/搜索