updatebyprimarykeyselective的where条件是全部字段_Power Pivot中筛选条件的使用

(一) 定义

在Power Pivot中,在大部分时间里,筛选是作为一个主要的功能运用到各个地方,筛选上下文,行上下文都和筛选相关。

(二) 可能涉及的函数

  • Filter 含义:根据条件筛选。
  • All 含义:忽略指定的维度条件。
  • AllExpect 含义:忽略除保留维度外的其他条件。
  • Calculate 含义:根据条件进行计算。大部分的筛选器最终需要与本函数进行组合运算。

(三) 案例分析

数据源:

姓名成绩学科张三100数学李四90语文王五80英语

我们先定义几个公式,看下有什么样的区别:

求和:=sum([成绩])求和迭代:=sumx([成绩])计算求和:=calculate([求和])固定条件求和:=calculate([求和],'表'[姓名]="张三"))筛选条件求和:=calculate([求和],filter('表','表'[姓名]="张三"))忽略条件求和:=calculate([求和],filter(all('表'),'表'[姓名]="张三"))忽略多条件求和:=calculate([求和],all('表'[姓名]),filter('表'="张三"))

我们先来看下几个计算的差异(数据透视表):

行标签固定条件求和筛选条件求和忽略条件求和忽略多条件求和李四100

100

王五100

100

张三100100100100总计100100100100

公式差异求和不涉及上下文。如果放在计算列里面,则不会进行上下文筛选计算求和涉及上下文迭代求和涉及上下文

公式差异固定条件求和不涉及上下文筛选条件求和涉及上下文

公式差异筛选条件求和涉及上下文忽略条件求和在筛选时忽略字段筛选如果全部忽略相当于不涉及上下文,也就和固定条件求和一样

忽略多条件求和,因为calculate本身不存在绝对的筛选,所以条件all不产生作用,所以函数all以及allexpect只针对实际筛选函数filter起作用。

那我们来看下Filter和All以及AllExpect之间的联系。我们增加些数据

姓名成绩学科张三100数学李四90语文王五80英语张三90语文李四80英语

忽略全部:=CALCULATE([求和],FILTER(ALL('表'),[姓名]="张三"))忽略姓名:=CALCULATE([求和],FILTER(all('表'[姓名]),'表'[姓名]="张三"))忽略学科:=CALCULATE([求和],FILTER(all('表'[学科]),'表'[姓名]="张三"))忽略姓名除外:=CALCULATE([求和],FILTER(ALLEXCEPT('表','表'[姓名]),'表'[姓名]="张三"))忽略学科除外:=CALCULATE([求和],FILTER(ALLEXCEPT('表','表'[学科]),'表'[姓名]="张三"))

根据之前的内容,看看其中哪些是错误的?

在使用忽略函数的时候,要根据被筛选filter里面的实际筛选条件来定义,所以忽略学科忽略学科除外都是错误的。因为filter函数内部没有进行学科的实际筛选。也就不存在忽略的问题。

(四)总结

cddbbad908974bf6a33b590691073f8e.png

请点个赞,转发让更多的人来了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值