当然我们也可以再次选中sales.sum,然后再列中将值选择为占比,但这里通过ALL筛选器函数的应用,让我们理解表筛选器。
另一种DAX表达方式如下
金额占比_01 = SUMX('FactSales','FactSales'[SalesAmount])
/CALCULATE(SUM(FactSales[SalesAmount]),ALL(DimDate))
这里通过CALCULATE第一个参数聚合之后,再第二个筛选器参数进行表过滤的去除,同时注意,这里需要时间表DimDate与FactSales进行关联。具体时间函数可以参考下面的文章
Power BI商业智能分析:时间与时间智能函数同比完整步骤(含视频)
02:DAX Studio Query
通过在Dax Studio Query中使用如下的脚本,得到和第一步相同的结果,如下图,定义度量值,通过SUMMARIZE使用度量值,具体SUMMARIZE的应用参考如下文章
Power BI商业智能分析:Dax Studio财务报告表函数查询分析
DEFINE
MEASURE FactSales[SalesAmount]={SUMX('FactSales',
'FactSales'[SalesAmount])
/SUMX(all(FactSales),FactSales[SalesAmount])}
EVALUATE
SUMMARIZE(FactSales,
DimDate[YearKey],
"金额",
{sum(FactSales[SalesAmount])}
,"金额占比",
[SalesAmount])
结果如下图
03: Analysis Services应用
上述DAX建模,也可以在企业级多维建模中使用,我们在Analysis Services输入如下公式
金额占比:= SUMX('FactSales','FactSales'[SalesAmount])/SUMX(all(FactSales),FactSales[SalesAmount])
选择Analysis in Excel按钮,在Excel数据透视表行选择年份,值选择金额占比,得到的结果与在Power BI Desktop得到的值是一样的。如下图
小结,本篇文章结合三个不同的工具介绍了聚合函数结合筛选器函数的应用,当然筛选器函数除了ALL,还是其他内容,后面的文章我们也会继续更新,谢谢。