DAX/PowerBI系列 - 参数表(Parameter Table)

Posted 马丁叔叔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAX/PowerBI系列 - 参数表(Parameter Table)相关的知识,希望对你有一定的参考价值。

 

DAX/PowerBI系列 - 参数表(Parameter Table)

难度: ★☆☆☆(1星)

适用范围: ★(4星)

概况:

这个模式比较简单灵活,而且很实用。所用的DAX语句也比较简单。

但它的变化形式很多和扩展应用范围很广。后文介绍的动态分组(Dynamic Segmentation)也是其中一种。

主要是通过筛选器(Slicer)选择不一样的参数时,DAX语句根据所选的值反映相关的选择值进行计算。

 

注:参数表,通常可以不放到Data warehouse里面,可以在Excel,或者PowerBI里面,用户可以随时对参数进行修改。

 

----------------------------------------------------------------------------------------------

先看最后PowerBI效果:

应用场景:

以下是几个应用场景:

  • what-if分析
    •   商品打8折,打9折销售额,盈利都有什么变化
  • 算法选择或度量选择
    •   根据选择,返回同一个度量不一样的算法结果。
  • Top N

 

以销售为例:

要求:对SalesAmuont放缩,表示为x1, x1,000, x1000,000等等。

先显示效果:

数据模型:

 

Sacle表不与其他表相连,DAX只需要拿到所选的值对原有度量进行放缩即可。

Sales Amount :=
IF (
    HASONEVALUE ( Scale[Scale] ),
    SUM ( Sales[SalesAmount] ) / VALUES ( Scale[Scale] ),
    SUM ( Sales[SalesAmount] )
)

要点:

  • 通常一个参数表只选择一个值,通过VALUES函数(或MIN/MAX)得到所选的值。

 

显示结果参照上面动图或者如下:

左边x1,右边x1000


 

 

 

 

 

 

扩展1:多参数表

下面显示两个参数 - 折扣数和起订量 - 对折扣后的销售额的影响。

效果:

 

数据模型:

DiscountedSalesAmount 的计算
DiscountedSalesAmount :=
IF (
    HASONEVALUE ( Discounts[DiscountValue] ) && HASONEVALUE ( MinQuantity[MinQuantity] ), --折扣和起订量都选了
    CALCULATE (
        [SalesAmount] * ( 1VALUES ( Discounts[DiscountValue] ) ),
        Sales[Quantity] >= VALUES ( MinQuantity[MinQuantity] )
    )
    + CALCULATE (
        [SalesAmount],
        Sales[Quantity] < VALUES ( MinQuantity[MinQuantity] )
    ),
    IF (
        NOT ( ISFILTERED ( Discounts[Discount] ) )
            && NOT ( ISFILTERED ( MinQuantity[MinQuantity] ) ),
        [SalesAmount],  --都没选
        IF (
            HASONEVALUE ( Discounts[Discount] ) --只选了discount的一个值
                && NOT ( ISFILTERED ( MinQuantity[MinQuantity] ) ) ,
            CALCULATE ( [SalesAmount] * ( 1VALUES ( Discounts[DiscountValue] ) ) ),
            BLANK ()
        )
    )
)

 

PowerBI效果显示如下:

 

要把玩上面的PowerBI请戳:

在线:Parameter-Table-Multi: https://app.powerbi.com/view?r=eyJrIjoiNDdkNjgwYjctZjBhNy00OThiLWJlMjctN2EyMDdiMzI2YWQzIiwidCI6ImQxYWY4NDdiLTJjZTEtNDRjYi1iYjUwLWQ1ODAyYmI0M2M4YiIsImMiOjEwfQ%3D%3D

下载链接: https://pan.baidu.com/s/1eR2R6Pc 密码: kiuk

 

 

Top N(大客户分析)  和 Period Table分析比较重要,会单独的后续文章介绍。

 

文末有彩蛋!!!

以上是关于DAX/PowerBI系列 - 参数表(Parameter Table)的主要内容,如果未能解决你的问题,请参考以下文章

DAX/PowerBI系列 - 玩转阿里云 Alicloud Pricing

DAX基础入门 – 30分钟从SQL到DAX — PowerBI 利器

PowerBI功能发布时间线

c#如何将一系列的无序参数名和对应的参数值,按照ascll 顺序链接?

Golang调用不同参数的方法

H264编码系列之ffmpeg和x264码率控制分析