zoukankan      html  css  js  c++  java
  • DAX/PowerBI系列

    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分析比较重要,会单独的后续文章介绍。

    文末有彩蛋!!!

  • 相关阅读:
    equals方法
    StringBudilde
    日期
    system
    File类
    calender
    stringbuilder tostring
    File的三种构造方法
    Java入门——day52
    Java入门——day53
  • 原文地址:https://www.cnblogs.com/lizardbi/p/DAX-PATTERN-POWERBI-Parameter-Table-1.html
Copyright © 2011-2022 走看看