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] * ( 1 – VALUES ( 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] * ( 1 – VALUES ( 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系列 - 参数表(Parameter Table) - 大客户分析(Top N)
DAX/PowerBI系列 - 参数表(Parameter Table) - 大客户分析(Top N) 难度: ★☆☆☆☆(1星) 适用范围: ★★★☆☆(3星) 概况:此文为DAX/PowerBI系 ...
- (玩起来)DAX/PowerBI系列 - 参数表(Parameter Table) - 多时间段数值对比
盆友们,边看文章边玩,请耐心等待PowerBI load出来~~~~ (7.8秒钟) DAX/PowerBI系列 - 参数表(Parameter Table) - 多时间段数值对比 难度: ★☆☆☆☆ ...
- DAX/PowerBI系列 - 参数表(Parameter Table) 度量值模板
DAX/PowerBI系列 - 参数表(Parameter Table) 度量值模板 难度: ★★☆☆☆(2星) 适用范围: ★★★☆☆(3星) 概况: 当你有多个度量值都需要计算YTD,MoM,而又 ...
- DAX/PowerBI系列 - 关于时间系列 - 时间相关数值比较 - 用非自带函数
DAX/PowerBI系列 - 关于时间系列 - 时间相关数值比较 - 用非自带函数 文末有彩蛋,解决蛋疼问题 难度: ★★☆☆☆(2星) 适用范围: ★★★☆☆(3星) 概况: 基于时间的汇总可能是 ...
- DAX/PowerBI系列 - 库存总价值(Inventory Value)
DAX/PowerBI系列 - 库存总价值(Inventory Value) 欢迎交流与骚扰 难度: ★★☆☆☆(2星) 适用: ★★☆☆☆(2星) 概况: 有多少货(库存)当然重要(对于运营人员), ...
- DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate Date Dimension)
跟大家的交流是我的动力. :) DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate Date Dimension) 难度: ★☆☆☆☆(1星) 适用范围: ★ ...
- DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)
DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)参考文章见最后 难度: ◆◆◇◇◇(2星) 应用场景: 其实很多时候对数据汇总都会有层级关系的问题,不过说的不是 ...
- DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate TIME Dimension)
DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate TIME Dimension) 难度: ★☆☆☆☆(1星) 适用范围: ★★★★★(5星) 这个时间系列想 ...
- DAX/PowerBI系列 - 累计总计(Cumulative Total)
DAX/PowerBI系列 - 累计总计(Cumulative Total) 2017/07/23 更新:B列公式(见最后) 难度: ★★☆☆☆(2星) 适用: ★★☆☆☆(2星) 概况: 这个模式普 ...
随机推荐
- 有关extdelete恢复测试
客户意外rm掉了数据文件,导致数据库无法打开,由于没有完整的备份和归档,需要使用别的方法,而客户又关闭了数据库,导致无法使用文件描述符恢复,就要使用linux上别的方法了,现记录使用extundele ...
- ASP.NET - 自定义控件处理页面事件(控件与页面数据交互)的方法
//用委托的方法实现 //控件代码 public delegate void DelegateFunction( string sPageTitle ); private DelegateFuncti ...
- 基于Doubango的iOS客户端开源框架
一.ios-ngn-statck工程 1.Tests ---功能测试 2.底层模块(c和c++) Doubango --- 基于3GPP IMS/RCS 并能用于嵌入式和桌面系统的开源框架 1) ti ...
- Core Audio 在Vista/Win7上实现
应用范围:Vista / win7, 不支持XP 1. 关于Windows Core Auido APIs 在Windowss Vista及Windows 7操作系统下,微软为应用程序提供了一套新的音 ...
- 为什么python适合写爬虫?(python到底有啥好的?!)
我用c#,java都写过爬虫.区别不大,原理就是利用好正则表达式.只不过是平台问题.后来了解到很多爬虫都是用python写的.因为目前对python并不熟,所以也不知道这是为什么.百度了下结果: 1) ...
- 开源半成品的Web版工作流模板设计器(基于AngularJS 2和Redux), 还在继续填坑中
先上个图: 很多企业内部的应用都需要有个工作流平台(插件),无奈灵活方便好用且能够自行更改代码定制嵌入的实在不多,只好自己动手慢慢搞. https://github.com/shibamo/99-fl ...
- 蓝桥网试题 java 基础练习 十六进制转十进制
---------------------------------------------------------------------------------------- 貌似用int类型不会超 ...
- HDU 2080 夹角有多大II
夹角有多大II Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- Spring + Quartz配置实例
Spring为创建Quartz的Scheduler.Trigger和JobDetail提供了便利的FactoryBean类,以便能够在Spring 容器中享受注入的好处.此外Spring还提供了一些便 ...
- Qt之hello world
本人使用的是Qt5.7版本的,请读者自主下载安装. 今天首先来进行Qt入门的第一个程序,也是很经典的一个例子.这是在很多的变成语言中都会用到的例子,就是输出helloworld这个信息.Qt中使用的变 ...
