数据可视化之powerBI基础(十九)学会使用Power BI的参数,轻松搞定动态分析
https://zhuanlan.zhihu.com/p/55295072
静态的分析经常不能满足实际分析的需要,还需要引入动态分析,通过调节某个维度的增减变化来观察对分析结果的影响。在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,注意这里的数据类型选择“十进制数字”,

参数度量值重命名为[折扣率参数],原有计算销售额的度量值假设为[销售额],新建一个度量值:
折扣销售额=[销售额]*[折扣率参数]
将这个度量值和原来的[销售额]同时放入到柱形图中,

通过切片器选择不同的折扣率就可以动态的展示折后的销售情况。
关于参数就介绍到这里,参数的更多应用场景,可以根据这里的例子举一反三,使用方法类似。
数据可视化之powerBI基础(十九)学会使用Power BI的参数,轻松搞定动态分析的更多相关文章
- 数据可视化之powerBI入门(十一)认识Power BI数据分析语言DAX
DAX是英文Data Analysis Expression的缩写,意思是数据分析表达式,从名称上就可以看出,DAX公式是用作数据分析的,事实上也确实如此,从数据分析层面认识DAX会更有助于我们理解它 ...
- 数据可视化之powerBI基础(九)Power BI中的“新表”,你会用吗?
https://zhuanlan.zhihu.com/p/64413703 通常情况下,在PowerBI进行分析的各种数据表都是从外部的各种数据源导入进来的,但并不总是如此,某些情况下在PowerBI ...
- 数据可视化之powerBI技巧(二十三)Power BI可视化技巧,使用DAX自定义时间轴
按照自然日历来展现疫情数据时,是这样的效果, 由于各个国家的疫情爆发时间不一致,按自然日期坐标轴很难比较各个国家的蔓延速度. 如果各个国家都从蔓延日开始统计,展示之后每日的确诊人数,就是同样的时间轴 ...
- 数据可视化之powerBI技巧(十七)在Power BI中对数据进行分组
根据某一个维度的数据,进行分组统计,是很常见的做法,比如按年龄对客户进行分组,按考试成绩进行分组统计等,这篇文章介绍一下,在PowerBI中如何对数据进行分组. 在PowerQuery编辑器中分组 在 ...
- 数据可视化之powerBI技巧(五)在Power BI中写出优雅的度量值是什么体验?
之前的文章(采悟:连接表的几个DAX函数,一次全掌握)介绍了产品A的客户与产品B的客户的各种交叉关系,其中最常用的应该是找出A和B的共同客户,以便进行产品关联分析. 之前的思路是计算出两个产品的共同客 ...
- 数据可视化之powerBI技巧(四)使用Power BI制作帕累托图
各种复杂现象的背后,其实都是受关键的少数因素和普通的大多数因素所影响,把主要精力放在关键的少数因素上,就能达到事半功倍的效果. 这就是大家常说的二八原则,也称为帕累托原则,最早是由意大利经济学家 V. ...
- 数据可视化之powerBI技巧(三)这个Power BI技巧很可爱:利用DAX制作时钟
周末放松一下,给大家分享一个小技巧,仅利用DAX制作一个简易的时钟. 时钟效果如下: 这个时钟的制作只需一个度量值,你信吗? 事实上确实如此,制作步骤介绍如下: 1,新建参数,生成一个数字序列作为小时 ...
- 数据可视化之分析篇(一)使用Power BI进行动态帕累托分析
https://zhuanlan.zhihu.com/p/57763423 通过简单的点击交互,就能进行动态分析发现见解,才是我们需要的,恰好这也是 PowerBI 所擅长的. 就帕累托分析来说,能从 ...
- 数据可视化之PowerQuery篇(十一)使用Power BI进行动态帕累托分析
https://zhuanlan.zhihu.com/p/57763423 上篇文章介绍了帕累托图的用处以及如何制作一个简单的帕累托图,在 PowerBI 中可以很方便的生成,但若仅止于此,并不足以体 ...
- 数据可视化之powerBI基础(十)快速度量值,帮你更快的进行数据分析
https://zhuanlan.zhihu.com/p/64414831 刚开始学习PowerBI,最头疼的可能就是度量值了,毕竟用了Excel这么多年,只相信自己眼睛看到的,对于这个"虚 ...
随机推荐
- [AHOI2017/HNOI2017]单旋
题目 点这里看题目. 分析 最妙的地方在于,这道题其实是用一种数据结构模拟另一种数据结构! 我们需要维护深度和树的结构,以下对于每个操作进行分别讨论. 插入一个新节点 可以发现,这个新 ...
- python中的类型
python中的类型分为四种 1.整形 2.浮点型 3.字符串 4.对象(除了前三种,其他的都是对象) 比如函数也是对象 def fun(): print(123) type(fun) // < ...
- TensorFlow从0到1之TensorFlow csv文件读取数据(14)
大多数人了解 Pandas 及其在处理大数据文件方面的实用性.TensorFlow 提供了读取这种文件的方法. 前面章节中,介绍了如何在 TensorFlow 中读取文件,本节将重点介绍如何从 CSV ...
- TensorFlow从0到1之TensorBoard可视化数据流图(8)
TensorFlow 使用 TensorBoard 来提供计算图形的图形图像.这使得理解.调试和优化复杂的神经网络程序变得很方便.TensorBoard 也可以提供有关网络执行的量化指标.它读取 Te ...
- StringBuilder(拼接字符串省内存)
观察如下代码: String s = ""; for (int i = 0; i < 1000; i++) { s = s + "," + i; } 虽然 ...
- MAC App破解之路十 Particle Design
这个软件破解非常简单: 修改: [PaddleStatic Yz6nrtNwF4].直接返回1 效果:
- cc23b_demo-函数对象c++ 调用操作符的重载与函数对象-//用模板定义一元谓词、代码示范
//用模板定义一元谓词. #include <iostream> #include <vector> #include <algorithm> using name ...
- 深入了解C#(TPL)之Parallel.ForEach异步
前言 最近在做项目过程中使用到了如题并行方法,当时还是有点犹豫不决,因为平常使用不多, 于是借助周末时间稍微深入了下,发现我用错了,故此做一详细记录,希望对也不是很了解的童鞋在看到本文此文后不要再犯和 ...
- Linux下如何查看硬件信息?
我们在 Linux 下进行开发时,有时也需要知道当前的硬件信息,比如:CPU几核?使用情况?内存大小及使用情况?USB设备是否被识别?等等类似此类问题.下面良许介绍一些常用的硬件查看命令. lshw ...
- logback.xml 不能被加载,logback不能被执行,logback.xml 无法生效,slf4j日志样式输出失败
1. 原因 logback.xml 无法被加载, 尝试了好久还是失败,哎,最后新建工程竟然可以,所以说还是项目的问题: 原来项目依赖了两个slf4j.jar,是版本冲突了: 2. 查找原因 idea ...