前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power Pivot中引用度量,变量var的注意事项

Power Pivot中引用度量,变量var的注意事项

作者头像
逍遥之
发布2020-03-24 15:48:36
2.5K0
发布2020-03-24 15:48:36
举报
文章被收录于专栏:数据技巧

在DAX公式中,变量是我们经常会使用的一个技巧,方便我们对复杂的公式能够显得的更清楚些,但是变量是一个稳定值,也就是变量的计算的值是固定的,对上下文的影响会忽略。

我们来看一个案例:

表1

姓名

学科

成绩

张三

数学

100

李四

语文

90

王五

英语

80

1. 我们设置一个度量值为总分。

代码语言:javascript
复制
总分:=sum('表1'[成绩])

2. 引用度量进行计算:

代码语言:javascript
复制
Calculate([总分],'表1'[姓名]="张三")

返回结果100。

3. 引用变量进行计算:

代码语言:javascript
复制
Var zf= sum('表1'[成绩])
Return Calculate(zf,'表1'[姓名]="张三")

返回结果270。

这里就存在一个var赋值后的结果可以忽略筛选条件的影响。

代码语言:javascript
复制
var zf=Sum([成绩])
return Calculate(zf,'表1'[姓名]="张三")
代码语言:javascript
复制
Calculate(Sum([成绩]),'表1'[姓名]="张三")

这两个写法对于计算值的变化是不一样的。

所以我们很多时候会利用这个特性来进行计算,大部分场合下可以替代earlier和earliest函数的特性。 我们看一个之前讲解过的累计求和的问题。

1. 添加列写法

2. 度量值写法

代码语言:javascript
复制
累计_度量值:=Calculate(Sum('表2'[金额]),
                       Filter(All('表2'[时间]),
                                  '表2'[时间]<=Max('表2'[时间])
                           )
                     )

3. 万能变量Var写法

代码语言:javascript
复制
累计_var_大于开始小于结束 = 
var kssj=Calculate(Min('表2'[时间]),All('表2'[时间]))  //开始时间
var jssj=Max('表2'[时间]) //结束时间
return 
Calculate(Sum([金额]),Filter(All('表2'[时间]),
                                 '表2'[时间]>=kssj && '表2'[时间]<=jssj
                            )
        )

解释: 因为如果结束值单独只写Min('表2'[时间])的话,我们得到的结果是>=min的最小值和<=max的值只能是一个,也就是当前值。

我们只需要改变开始时间就可以把DAX自带的几个智能时间函数做一个统一的写法格式。

例如:

TotalYtd/ DatesYtd: kssj= StartOfYear('表2'[时间]) TotalQtd/ DatesQtd: kssj = StartOfQuarter('表2'[时间]) TotalMtd/ DatesMtd: kssj = StartOfMonth('表2'[时间]) 累计至今: 开始时间=Calculate(Min('表2'[时间]),All('表2'[时间]))

我们可以考虑下,如果是星期累计,我们需要使用什么样的方法来实现?

模拟操作文件下载:http://gofile.me/4KHV7/kXpjlJ2pG

如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据技巧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 我们设置一个度量值为总分。
  • 2. 引用度量进行计算:
  • 3. 引用变量进行计算:
  • 1. 添加列写法
  • 2. 度量值写法
  • 3. 万能变量Var写法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档