PowerBI 第九篇:修改查询

在PowerBI的查询编辑器中,用户可以使用M语言修改Query,或修改Query字段的类型,或向Query中添加数据列(Column),对Query进行修改会导致PowerBI相应地更新数据模型(Data Model),这跟使用DAX表达式修改Data Model有本质的区别:前者是修改数据表,后者是修改数据视图,PowerBI通过查询编辑器来修改数据模型。

一,修改数据类型

每一个Query都是由一系列的列和行构成的数据表,每一列都有特定的数据类型,数据列的数据类型主要是number和text,例如:

123是数字类型,ABC是字符类型。有时,从源中导入数据之后,PowerBI不能确定数据类型,会在列前方同时标记为123和ABC,用户可以通过”Change Type“转换列的数据类型。

二,添加数据列

从主菜单中切换到”Add Column“面板,点击”Custom Column“,根据M公式创建新的数据列。

从左侧可用的列中,添加公式,创建新的数据列:

 

三,添加排序列

在对数据进行排序时,有时不能使用DAX表达式,此时必须使用M公式,例如,对班级(Class)进行排序,使用DAX的IF函数,按照班级(Class)名称新建一个字段(Class Ordinal),

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

设置Class按照Class Ordinal排序,PowerBI会抛出错误:

在这种情况下,必须使用M公式,在Schools Query中新增字段:

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

四,查询的连接

把查询连接到一起,可以使用Home菜单中”Merge Queries as New“,通过连接操作(Join)把两个Query合并,生成新的Query。

PowerBI在进行Merge时,只支持等值条件的连接操作,等相应字段的值相等时,匹配成功。

例如,选择 EventSoldService 作为其中一个Query,点击EventId,作为连接的条件,第一个表称作左表,第二标称作右表:

也可以选择多个数据列作为连接条件,摁住Ctrl,连续点击EventId,SoldServiceId,就可以把这个字段作为连接:

在进行Merge操作时,PowerBI提供多种连接的类型,如下:

默认情况下,PowerBI会把连接的右表显示为"Table",

用户可以点击上方的Icon, 对右表进行扩展(Expand)或聚合(Aggregate)操作,扩展操作是指在最终的查询中显示右表的字段,聚合操作是对右表的相应字段进行聚合操作。

 

参考文档:

Power Query M Reference

Add a custom column in Power BI Desktop

猜你喜欢

转载自www.cnblogs.com/ljhdo/p/4548830.html