PowerBI 2019年5月更新 引入做计划预测大杀器

  • 2019 年 10 月 6 日
  • 笔记

介绍

本月除了常规的更新以外,引入了一个非常牛的大杀器,叫做VALQ,专门用来做计划,预测,调整等,在很多领域都有广泛的运用。

单单是VALQ,就可以用很多文章来描述,因此我们介绍了5月更新后,将重点讲解下这个VALQ的功用。

报表方面

性能分析器

很多人会问如何对PowerBI进行性能优化,无疑此次的更新给我们提供了这样的功能:

每一个图形元素的渲染都可以包括三部分时间:

  • DAX查询时间
  • 视觉对象显示时间
  • 其他

另外这里提供了复制查询的功能,可以将实际发送给DAX引擎的查询复制出来,例如:

// DAX Query  DEFINE VAR __DS0FilterTable =    TREATAS({"Y2012",      "Y2013",      "Y2014"}, '日期'[年份名称])    EVALUATE    TOPN(      1001,      SUMMARIZECOLUMNS('日期'[年份名称], '日期'[年份序号], __DS0FilterTable, "销售_销售额", '业务指标 销售类'[销售 销售额]),      '日期'[年份序号],      1,      '日期'[年份名称],      1    )    ORDER BY    '日期'[年份序号], '日期'[年份名称]  

这样有助于高级分析师彻底理解PowerBI与DAX引擎的交互,用来调试错误。对于此,我们将在后续文章专门讲解使用性能分析器来调试DAX的方法。

筛选器面板改进

筛选器面板的改进主要体现在:

排序

这点完全是从用户角度出发,因为这个筛选器面板是为了用户设计的,用户的需求会非常灵活,例如筛选器的排列顺序位置等,因此,必须能够更加灵活的定义筛选器,虽然本次有了这个改进,但仍然有些功能是存在问题的,在此前的文章已经描述,这里不再赘述。

支持主题

筛选器支持了主题,可以像配置PowerBI颜色一样,对筛选器进行主题的设置,例如:

{       "name": "FilterPaneTheme",       "visualStyles": {           "*": {               "*": {                   "outspacePane": [{                       "backgroundColor": {"solid": {"color": "#999999"}},                       "foregroundColor": {"solid": {"color": "#374649"}},                       "transparency": 50,                       "titleSize": 35,                       "headerSize": 8,                       "fontFamily": "Arial",                       "border": true,                       "borderColor": {"solid": {"color": "#374649"}}                   }],                   "filterCard": [                       {                       "$id": "Applied",                       "transparency": 0,                       "backgroundColor": {"solid": {"color": "#AFB5B6"}},                       "foregroundColor": {"solid": {"color": "#374649"}},                       "textSize": 15,                       "fontFamily": "Arial",                       "border": true,                       "borderColor": {"solid": {"color": "#ffffff"}},                       "inputBoxColor": {"solid": {"color": "#C8C8C8"}}                       },                       {                       "$id": "Available",                       "transparency": 40,                       "backgroundColor": {"solid": {"color": "#CCCCCC"}},                       "foregroundColor": {"solid": {"color": "#ffffff"}},                       "textSize": 10,                       "fontFamily": "Arial",                       "border": true,                       "borderColor": {"solid": {"color": "#123456"}},                       "inputBoxColor": {"solid": {"color": "#777777"}}                   }]               }           },           "page": {               "*": {                   "outspace": [{                       "color": { "solid": { "color": "#000000" }}                   }]               }           }       }   }  

表和矩阵支持键盘

PowerBI在整体的设计上,是要支持全键盘操作的,因此,本次对表和矩阵做了这方面的增强,在选择表或矩阵元素后,按Ctrl+右可以锁定到具体的表(或矩阵)中的一个单元格位置。

线图支持控制标签位置

但它更大的作用在于:

通过自定义系列与标签位置的配合,可以让不同的线呈现出标签与线的颜色一致且位置统一在上,这样对区分不同的线有很重要的作用,尤其是在线很多很密集的时候。

KPI可视化对象支持设置文本大小

分析方面

关键影响因素支持设置颜色

支持设置颜色:

同时也支持了在手机端查看,但这项功能是一把双刃剑,如果完全需要这种带概率式的洞察,则该功能是很有用的,然而这种不确定性也是在制作报表的时候很多场景不愿意看到的。

建模方面

禁用自动日期时间智能

由于意大利大师的强烈建议,微软PowerBI团队增加了一个可以取消自动时间智能设置的选项,可以设置PowerBI文件默认不使用自动日期时间智能,如下:

与此同时,这里给出目前笔者认为是最佳的日期表模板及模式:

1、构造一个日期表模板

2、使用日期表模板来构造自己的日期表

则日期表模板是:

Model.DatesTemplate =  // 模板函数  // 构造日期表的方法  // 本方法基于数据模型中最大的表    VAR BeginDate   = MINX( { MIN( 'FactOrders'[订单日期] ) , MIN( 'FactOrders'[发货日期] ) } , [Value] )  // 根据实际修改  VAR EndDate     = MAXX( { MAX( 'FactOrders'[订单日期] ) , MAX( 'FactOrders'[发货日期] ) } , [Value] )  // 根据实际修改    // 生成日期表,以下内容无需修改    RETURN  ADDCOLUMNS(          CALENDAR(          DATE( YEAR( BeginDate ) ,   1  ,    1  ) , // 开始日期          DATE( YEAR( EndDate ) ,     12 ,    31 )   // 结束日期      ),      "Year" , YEAR( [Date] ) ,      "Quarter" , SWITCH( TRUE() , MONTH( [Date] ) IN { 1,2,3 } , 1 , MONTH( [Date] ) IN { 4,5,6 } , 2 , MONTH( [Date] ) IN { 7,8,9 } , 3 , MONTH( [Date] ) IN { 10,11,12 } , 4 ) ,      "YearQuarter" , YEAR( [Date] ) * 10 + SWITCH( TRUE() , MONTH( [Date] ) IN { 1,2,3 } , 1 , MONTH( [Date] ) IN { 4,5,6 } , 2 , MONTH( [Date] ) IN { 7,8,9 } , 3 , MONTH( [Date] ) IN { 10,11,12 } , 4 ) ,      "Month" , MONTH( [Date] ) ,      "YearMonth" , YEAR( [Date] ) * 100 + MONTH( [Date] ) ,      "Week" , WEEKNUM( [Date] , 2 ) ,      "YearWeek" , YEAR( [Date] ) * 100 + WEEKNUM( [Date] , 2 ) ,      "Weekday" , WEEKDAY( [Date] , 2 ) ,      "Day" , DAY( [Date] ) ,      "DayInWeek" , WEEKDAY( [Date] , 2 ) // 周1 = 1 , ... ,周日 = 7  )  

注意,其中的BeginDateEndDate表示了日期表的范围,而这个范围由事实表锁定。

而主日期表为:

DimDates =    // 主日期表  // 通过日期表模板构造  // 模板  // 依赖  //      DatesTemplate  // 注意  //      请设置各列的默认属性,如果需要可以构造日期层级    'Model.DatesTemplate' // 日期表模板  

DAX函数 ALLSELECTED

现在 ALLSELECTED 与 ALL 类似,开始支持多参数了。

自定义可视化

ArcGIS

支持了查看错误面板,可以帮助我们快速锁定到有问题的字段描述,以修复地图。

Walkers Animated Pictogram

该公司还出品了一个大家都曾看到过的赛跑图:

还记得中国GDP与各国GDP的赛跑吗?这个图可以完全制作出这个效果,有兴趣的伙伴可以自己尝试。

其他

PowerBI Desktop 加入查询自动取消特性

为了提升性能,在以下场景,PowerBI Desktop会将查询自动取消:

  • 当一个可视化元素产生了一个新查询而之前的查询尚未完成,则会自动取消之前的查询。这种情况在选择切片器、多选以及交叉筛选时会出现。
  • 当一个可视化元素处于隐藏状态,查询会自动取消。
  • 当切换页面时,上一个页面未完的查询会自动取消。
  • 当关闭报告,所有的查询将自动取消。

注意:目前这个特性仅仅适用于PowerBI Desktop,并不适用于云端的PowerBI Service版。

ValQ

重点来了,本月更新中,微软介绍了一个重要的可视化组件,叫做:ValQ(我Q)。

先来看看它的样子吧:

以财务预算为例,每项预算都是由其他项组成,而其他项由更多的子项构成,因此这就构成了一个级联连锁结构。而财务分析师通常需要改变其中某些局部变量来观察每个层级的变化以进行财务预算、分摊等处理。

通过方案对比,最终选择合适的方案。它可以以树形或表形的形式存在,来进行计算:

可以批量更改参数,也可以只是更改某个细节:

整体如下:

关于valQ的使用远远超过一次文章能介绍清楚,这款软件由VisualBI打造,用来弥补Excel在此方面的不足:

在PowerBI中的架构如下:

ValQ可以胜任的角色及场景:

大家可以自行尝试,这个工具还是有很强的专业性的。

总结

2019年5月更新,PowerBI 引入了 性能分析器以实现了性能分析。与此同时,引入了一家制作了ValQ的重要合作商以及其产品ValQ,这些特性大家可以自己尝试。