当前位置: 首页 > news >正文

BI技巧丨计算组

PowerBI有三大工具,分别是DAX Studio,Tabular Editor和Bravo。
DAX Studio通常我们会用来进行性能分析和DAX调优使用,Bravo一般用来批量格式化DAX,而Tabular Editor主要的功能就是计算组。
计算组这个名词,相信很多小伙伴都听过,但也有很多小伙伴其实并没有用过这个功能,本期我们来了解一下,计算组的用途以及使用方法。

案例数据:

案例数据比较简单,只有一张事实表。
将其导入到PowerBI中,通过如下代码,建立模型关系。

Date = 
GENERATE (CALENDAR ( MIN ( 'Sales'[DATE] ), MAX ( 'Sales'[DATE] ) ),VAR DA = [Date]VAR YEAR =YEAR ( DA )VAR QUARTER ="Q" & FORMAT ( DA, "Q" )VAR MONTE =FORMAT ( DA, "MM" )VAR DAY =DAY ( DA )RETURNROW ("Year", YEAR,"Quarter", QUARTER,"Month", MONTE,"DayOfMonth", DAY,"YearQuarter", YEAR & QUARTER,"YearMonth", YEAR & MONTE,"YearMonthCount",YEAR * 12 + MONTE)
)

结果如下:

到这里,我们的准备工作结束。
安装Tabular Editor,这里就不赘述了,小伙伴们可以自行搜索Tabular Editor2。

注:目前Tabular Editor2版本还是免费的,最新版Tabular Editor3属于收费。

计算组最重要的用途,按照白茶的理解,有两个:
1.相同逻辑的度量值,可避免重复造轮子;
2.可自定义DAX格式而不改变其原有的数据格式。
这里,我们只介绍如何避免重复造轮子。
举个例子:
我们现在有三段代码,分别用来计算销售数量的本期、同比以及环比。
销售数量:

Quantity = 
SUM ( Sales[Quantity] )

同比:

Count同比% = 
VAR CurrentCount =SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastYearMonthCount = CurrentCount - 12
VAR LastYearMonthValue =CALCULATE ([Quantity],FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastYearMonthCount ))
VAR Result =DIVIDE ( [Quantity] - LastYearMonthValue, LastYearMonthValue )
RETURNResult

环比:

Count环比% = 
VAR CurrentCount =SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastMonthCount = CurrentCount - 1
VAR LastMonthValue =CALCULATE ([Quantity],FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastMonthCount ))
VAR Result =DIVIDE ( [Quantity] - LastMonthValue, LastMonthValue )
RETURNResult

结果如下:

这里,白茶为了更好阐述计算组的用途,特意使用了较为复杂的逻辑。
在实际工作中,我们经常会遇到同一套逻辑,针对不同的KPI,我们需要重复写DAX的情况。
这样不仅费时费力,而且后续维护起来,也是一个巨大的麻烦,而计算组的出现,很好的解决了这一烦恼。
在安装好Tabular Editor后,我们会在面板导航上面,发现一个新的功能区”外部工具“(其他工具安装好后,也会出现在这里)。

我们选择点击,打开Tabular Editor。

在之前的版本中,还需要在预览功能里面打开“使用增强的元数据格式存储数据集”功能,目前最新版已经不需要了。

打开之后的页面如下:

依次点击鼠标右键:Table→Create New→Calculation Group,会出现如下界面:

这里会构建一张新表,我们需要针对此表进行命名,例如:同环比。
依次点击鼠标右键:表名→Create New→Calculation Item,会出现如下界面:

Name是展示我们构建逻辑的名称,New Calculation则是逻辑名称以及构建我们需要的业务逻辑。我们可以创建两个业务逻辑,分别是同比和环比。
这里会使用到一个特殊的函数:SELECTEDMEASURE。此函数的用途,用来代替我们要计算的指标。
同比:

VAR CurrentCount =SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastYearMonthCount = CurrentCount - 12
VAR LastYearMonthValue =CALCULATE (SELECTEDMEASURE(),FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastYearMonthCount ))
VAR Result =DIVIDE ( SELECTEDMEASURE() - LastYearMonthValue, LastYearMonthValue )
RETURNResult

结果如下:

环比:

VAR CurrentCount =SELECTEDVALUE ( 'Date'[YearMonthCount] )
VAR LastMonthCount = CurrentCount - 1
VAR LastMonthValue =CALCULATE (SELECTEDMEASURE(),FILTER ( ALL ( 'Date' ), 'Date'[YearMonthCount] = LastMonthCount ))
VAR Result =DIVIDE ( SELECTEDMEASURE() - LastMonthValue, LastMonthValue )
RETURNResult

结果如下:

两个逻辑构建完毕之后,我们点击保存按钮。

此时,我们回到PowerBI Desktop页面,会出现如下页面,点击立即刷新即可。

此时,我们就可以在表中看到刚才构建的计算组了。

最终展示效果如下:

这里是白茶,一个PowerBI的初学者。

http://www.lryc.cn/news/37862.html

相关文章:

  • PMP项目管理项目范围管理
  • Flink 定时加载数据源
  • ChatGPT、人工智能、人类和一些酒桌闲聊
  • WebRTC开源库内部调用abort函数引发程序发生闪退问题的排查
  • Golang并发编程
  • windows+Anaconda环境下安装BERT成功安装方法及问题汇总
  • git - 简易指南
  • [论文笔记]Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
  • 华为OD机试题 - 找目标字符串(JavaScript)| 机考必刷
  • C++面向对象编程之六:重载操作符(<<,>>,+,+=,==,!=,=)
  • JS_wangEditor富文本编辑器
  • Django实践-06导出excel/pdf/echarts
  • java并发入门(一)共享模型—Synchronized、Wait/Notify、pack/unpack
  • Ast2500增加用户自定义功能
  • 用Python暴力求解德·梅齐里亚克的砝码问题
  • 离散Hopfield神经网络的分类——高校科研能力评价
  • Retrofit核心源码分析(三)- Call逻辑分析和扩展机制
  • 源码分析spring如和对@Component注解进行BeanDefinition注册的
  • C语言--字符串函数1
  • Webstorm使用、nginx启动、FinalShell使用
  • 源码分析Spring @Configuration注解如何巧夺天空,偷梁换柱。
  • vector的使用及模拟实现
  • “华为杯”研究生数学建模竞赛2007年-【华为杯】A题:基于自助法和核密度估计的膳食暴露评估模型(附获奖论文)
  • 刷题(第三周)
  • 新C++(14):移动语义与右值引用
  • TCP相关概念
  • MySQL锁篇
  • SWF (Simple Workflow Service)简介
  • java(Class 常用方法 获取Class对象六种方式 动态和静态加载 类加载流程)
  • 【数据结构】线性表和顺序表