本篇文章我们介绍从数据理解到创建度量值的制作过程,数据源是一份Excel表格,一共有8张表,销售表,产品表,客户表,目标表,日期表,员工表,地理表及退货表,我们通过建立数据模型之间的表关系,如下图,销售事实表与产品表,客户表,日期表,退货表及地理位置表建立一对多的关系,目标表与员工表建立一对多的关系及员工表与地理位置表建立一对多的关系。
01:建立数据模型
如果觉得表之间关系看起来很复杂,可以建立局部视图来看局部表之间的关系,例如销售事实表与其他的维表,通过在模型视图点击+号,新建一个页面,如下图
然后我们从右侧数据中拖入销售表到界面中,如下图
选中销售表,右键增加相关表,这样就自动增加了销售表的模型,如下图
02:创建度量值
我们通过创建一个利润率的度量值,如下
profit% =
var sales=sum('FactSales'[SalesAmount])
var profit=sum(FactSales[NetSales])
return DIVIDE(profit,sales,"数据异常")
上述度量值定义三个变量,通过聚合sum得到销售额与净利润,然后通过相除返回利润率变量的具体值,在divide相除,我们通过设置第三个参数,如果数据异常,就会通过文字信息告诉我们数据发生了错误。
勾选创建好的度量值,在可视化界面我们能看到具体的值,如下
03:Power Query自定义列
那可不可以通过在Power Query自定义列创建度量值呢,这里我们进入到Power Query中,在增加列选中自定义列,在自定义列输入如下公式,单击确定,这样我们就完成了自定义列净利率
我们更改数据类型为小数类型,在净利率左侧数据类型下拉为小数,如下
点击文件,关闭并应用。
在数据中选中我们刚才创建的净利率,我们看到和我们通过DAX函数创建的值有很大的区别,如下图
原因是因为自定义列对每行都进行了聚合计算,导致得到了行累计的净利率,如果改成净利率的平均值,那么得到的结果就是行累计的平均值,如下图
所以我们创建度量值时,需要思考时是通过自定义列创建还是通过DAX函数创建。
04:可视化展示
在可视化选中一个折线图,X轴选中Year,Y轴选中profit%,这样我们结合应用了表模型与DAX函数,完成了profit%值随时间走势的变化情况,如下图
小结,上述我们通过建立表模型,创建度量值,对比分析度量值与自定义列及应用模型与度量值创建可视化,而从达到数据理解到度量值的创建过程,谢谢。