度量(Measure)是BI建模中的一个核心功能,以下通过一个简单例子介绍关于度量的基本知识。
用鼠标右击案例中的FactInternetSales(线上销售表),在弹出的右键菜单中单击“新建度量值”命令(见图3.5.1),在界面上方的公式框内输入以下公式(见图3.5.2):
当输入公式时,Power BI会弹出智能提示,按Tab键可快速完成输入,按Enter键可完成编辑。
图3.5.1
图 3.5.2
之后建立了第一个度量。其名字前的 图标表示这是一个度量,如图3.5.3所示。图 3.5.4介绍了公式的组成部分。
图 3.5.3
图 3.5.4
技巧: 虽然公式中不加入表格名称,只有列名称也可能是正确的,如线上销售金额=SUM([SalesAmount]),但是如果模型中有重名的列,添加表格名称就可以避免产生歧义。一般原则是,引用列名称时要添加表格名称。与此相反,度量名称必须是模型中的唯一值,所以,输入度量的时候不需要同时输入表格名称。
现在把新建的度量放到视觉图中,把鼠标光标悬停在柱形图上,度量会被突出显示。
细心的读者可能会发现一个小问题:货币显示单位是人民币,而不是美元,如图3.5.5所示。这是Power BI中文版默认配置所致。只需选中图表,在“建模”选项卡下选择“$”(美元)选项即可,如图3.5.6所示。
图3.5.5
图 3.5.6
为了验证结果的正确性,这里将字段“SalesAmount”拖入柱形图中,如图3.5.7所示。
图 3.5.7
二者结果相等,度量公式计算正确,如图3.5.8所示。
图 3.5.8
既然二者结果一样,为什么还要专门创建一个额外的度量呢?这是一个好问题。
选中柱形图,在其属性栏中用鼠标右击“SalesAmount”字段,可以看到,在弹出的右键菜单中的“求和”选项被勾选了(见图3.5.9),因为Power BI“默认”用户是求和的意图,自动将“SalesAmount”字段的数据聚合为汇总,此种转换被称为隐性度量,而笔者创建的是显性度量,其特征是有具体的度量公式,其中的SUM函数表明了返回求和结果。
图 3.5.9
注意: 在大多数情况下,建议用户避免使用隐性度量,因为使用隐性度量带来的问题远胜于其所具有的便利性,显性度量公式也被称为DAX公式,DAX公式可以相互嵌套,其功能也被叠加放大。
3.6节会结合复杂关联模式创建更加复杂的度量公式,加深读者对关联的理解。