zoukankan      html  css  js  c++  java
  • Power BI Report with Parameters

    静态的分析经常不能满足实际分析的需要,还需要引入动态分析,通过调节某个维度的增减变化来观察对分析结果的影响。在PowerBI中,可以使用「参数」,以切片器的形式来控制变量,与其他指标进行交互,进而完成动态分析。

     

    创建「参数」

     

    在PowerBI Desktop中,在“建模”选型卡下,点击“新建参数”,

     

     

     

    然后将出现这个窗口,

     

     

    比如按照以上默认的值建立的参数就是建立一个从0到20的整数序列:0、1、2、3……20,点击确定,画布上将出现一个切片器,这是因为新建参数时,左下角有个默认选项:将切片器添加到此页,通过滑动切片器可以调整参数的数值,

     

    在数据视图下,可以看到这个参数表,

     

     

    其实就是利用DAX函数GENERATESERIES新建了一个表而已,只是这里是通过图形界面点击的方式创建的,并且通过新建参数的方式,不只是新建了这张表,同时也新建了一个度量值,并自动添加到数据模型中,可以在整个报表中使用,通过右边的字段区可以看到这个度量值,

    参数 值 = SELECTEDVALUE('参数'[参数])

    这个度量值就是提取被选中的参数值,切片器滑到哪个数值,该度量值就返回什么数值,正是通过这个切片器和这个度量值的结合,来自由的控制变量,以下就通过几个实例来看看参数是如何实现动态分析的。

     

    TopN分析

     

    假设有全国每个省市的GDP金额,想知道GDP排名前5位GDP之和,可以这样写度量值:

     

    GDP = SUM('各省市GDP'[金额])
    前5名GDP = CALCULATE([GDP],TOPN(5,ALL('各省市GDP'[地区]),[GDP]))

     

    这里使用了函数TOPN,第一个参数就是要返回的行数,第二个参数是被筛选的表,第三个参数是排序依据,还有第四个可选参数,默认为0按降序排列,就是提取前N位的行数;如果为1,就是按降序排列,将返回最小的N行。

     

    这个度量值是计算前5名之和,如果想知道前10名,把TOPN的第一个参数改为10即可,但是在分析过程中我们不能总是手动更改度量值,这时就可以利用参数来自动实现。

     

    新建一个从1到10的参数,自动生成的度量值为了更具可读性可以重命名为[TOPN参数],然后把这个度量值来替换TOPN函数的第一个参数,更改上面的这个度量值:

     

    前N名GDP = CALCULATE([GDP],TOPN([TOPN参数],ALL('各省市GDP'[地区]),[GDP]))

     

    然后就可以通过拖动切片器来实现动态的TOPN分析了,

     

    动态移动平均

     

    在分析股价走势图时,经常用到30日均线、60日均线等,使用移动平均线可以熨平每日价格的剧烈波动,让用户能更清晰看到长期的变化趋势。

     

    30日均线就是向前推30天的均价折线图,60天均线、120天均线以此类推,我们先建立一个参数GENERATESERIES(30,120,30),以及度量值:[移动平均参数]。

     

    由于股市不是每天都开盘的,所以不能直接用自然日期表向前推N天,这里直接在每日股价走势数据中添加编号,编写度量值:

     

    N天均线 = AVERAGEX(
    filter(all('股价走势'),'股价走势'[编号]<=VALUES('股价走势'[编号])&&'股价走势'[编号]>=VALUES('股价走势'[编号])-[移动平均参数]),
    '股价走势'[收盘价])

     

    AVERAGEX函数是一个迭代函数,可以将筛选出的表依据最后一个参数取算术平均值,控制移动平均天数的就是'股价走势'[编号])-[移动平均参数],将这个度量值和收盘价维度同时放入到折线图中,

     

     

    可以直观的看出,天数越长的均线越平滑,走势越稳定。

     

    动态折扣率

     

    如果要测算对商品进行打折的情况下的销售额,可以新建一个折扣率参数GENERATESERIES(0.5,1,0.1),假设最低打5折,设置最小值为0.5,注意这里的数据类型选择“十进制数字”,

     

     

     

     

    参数度量值重命名为[折扣率参数],原有计算销售额的度量值假设为[销售额],新建一个度量值:

     

    折扣销售额=[销售额]*[折扣率参数]

     

    将这个度量值和原来的[销售额]同时放入到柱形图中,

     

     

     

    通过切片器选择不同的折扣率就可以动态的展示折后的销售情况。

    关于参数就介绍到这里,参数的更多应用场景,可以根据这里的例子举一反三,使用方法类似。

  • 相关阅读:
    Play 中如何使用 Ajax
    Play!中使用HTTP异步编程
    Asynchronous Jobs
    Play libs
    JPA persistence
    maven 打包和构建的Linux命令(mvn)
    Istio的流量管理入门-charlieroro编写
    Linux和Docker的Capabilities介绍及Setcap命令
    2020超实用提升英文阅读能力和必备3000单词表
    Cookie什么?Cookie和Session防御怎么做?
  • 原文地址:https://www.cnblogs.com/lingdanglfw/p/13955920.html
Copyright © 2011-2022 走看看