powerpivot字段汇总(Pivot信息函数中的判断)
powerpivot字段汇总(Pivot信息函数中的判断)C. 注意事项标量——逻辑值(True or False)A. 语法IsOnOrAfter ( <Value1> <Value2> [ [<Order>] [ <Value1> <Value2> [ [<Order>] [ … ] ] ] ] ) 位置参数描述第1参数Value1需要和第2参数比较的值第2参数Value2需要和第1参数比较的值第3可选参数Order应用的规则,0代表降序,1代表升序。默认1升序B. 返回
信息判断函数
比较显著的逻辑判断函数我们这里就省略了,例如IsBlank,IsText,IsError等。
我们先来看下其他不怎么常用的逻辑判断函数
(一) IsOnOrAfter
A. 语法
IsOnOrAfter ( <Value1> <Value2> [ [<Order>] [ <Value1> <Value2> [ [<Order>] [ … ] ] ] ] )
位置参数描述第1参数Value1需要和第2参数比较的值第2参数Value2需要和第1参数比较的值第3可选参数Order应用的规则,0代表降序,1代表升序。默认1升序
B. 返回
标量——逻辑值(True or False)
C. 注意事项
- 如果第3参数省略或者是1,则用value1参数>=value2参数来比较。
- 如果第3参数是0,则用value1参数<=value2参数来比较。
- 一般来说,value1为引用列或字符串,value2参数为一个标量比较值。
- 请注意不同属性的判断依据。
D. 作用
针对每一行进行判断并返回逻辑值。
E. 案例
需要筛选出找出日期为5/21日及之前的,同时等级为B级之前的内容。
表格的筛选我们使用Filter函数。
Filter('表1' '表1'[日期]<=Date(2019 5 21) && '表1'[等级]<="B")
如果我们用IsOnOrAfter函数来表示的话格式如下:
Filter('表1' IsOnOrAfter('表1'[日期] Date(2019 5 21) 0 '表1'[等级] "B"))
解释:
IsOnOrAfter因为第3参数是0,所以代表了是用<=来比较,日期<=2019.5.21,等级<=B级这两个条件。我们可以看到最终的结果是品牌为华为,等级为A和B的产品。而googl产品,因为日期不符合要求被排除在外了。
(二) CONTAINS
1. 语法
Contains ( <Table> <ColumnName> <Value> [ <ColumnName> <Value> [ … ] ] )
位置参数描述第1参数Table数据所在的表第2参数ColumnName需要查找的列第3参数Value包含的值
2. 返回
标量——逻辑值(True or False)
3. 注意事项
- 查找的列和需要查找的值必须成对出现
- 查找的列必须是表里的列或者是关联表的列
- 如果是引用相关表的列,则相关表必须是多对1关系中处于1的表。
4. 作用
是否每一列都能找到所对应的值,找到返回Ture,未找到返回False
5. 案例
要求:我们需要判断在数据表例是否有品牌为华为的同时产地是中国的数据。
Contains('表1' '表1'[品牌] "华为" '表1'[产地] "中国")
或者
Contains('表1' '表4'[品牌] "华为" '表1'[产地] "中国")
返回的结果是True。
解释:
表1代表数据表,表4代表品牌表。后面个判断公式引用给了多对1关系中的1表中的列。
(三) CONTAINSROW
1. 语法
ContainsRow ( <tableExpr> <scalarExpr>[ <scalarExpr> …])
位置参数描述第1参数TableExpr表表达式,用{}表示,{}里面填写需要查找的值第2参数scalarExpr需要查找的列
2. 返回
标量——逻辑值(True or False)
3. 注意事项
- 值是绝对匹配,不是相对匹配查找。
- 表表达式需要用{}表示需要查找的值
- 如果要查找多个列对饮给的值,需要在{}里再使用()表示
- 可用于行上下文
4. 作用
如果列里有匹配的则返回Ture,未找到则返回False。类似多条件完全匹配
5. 案例
要求:我们需要筛选在数据表例是否有品牌为华为的同时产地是中国的数据。
'表1'[等级]="A" &&'表1'[品牌]="华为" CONTAINSROW({("A" "华为")} '表1'[等级] '表1'[品牌])
以上2个表达式相等。请注意,如果是对应多个列查找,需要在{}里添加()。
如果是单列多个关键词查找,例如:
'表1'[品牌]="华为" || '表1'[品牌]="google" Containsrow({"google" "华为"} '表1'[品牌])
请注意,如果是单个字段查找多个值,则需要去掉()。
请点个赞,转发分享给更多的人。