比较显著的逻辑判断函数我们这里就省略了,例如IsBlank,IsText,IsError等。 我们先来看下其他不怎么常用的逻辑判断函数
IsOnOrAfter ( <Value1>, <Value2> [, [<Order>] [, <Value1>, <Value2> [, [<Order>] [, … ] ] ] ] )
位置 | 参数 | 描述 |
---|---|---|
第1参数 | Value1 | 需要和第2参数比较的值 |
第2参数 | Value2 | 需要和第1参数比较的值 |
第3可选参数 | Order | 应用的规则,0代表降序,1代表升序。默认1升序 |
标量——逻辑值(True or False)
针对每一行进行判断并返回逻辑值。
需要筛选出找出日期为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 ( <Table>, <ColumnName>, <Value> [, <ColumnName>, <Value> [, … ] ] )
位置 | 参数 | 描述 |
---|---|---|
第1参数 | Table | 数据所在的表 |
第2参数 | ColumnName | 需要查找的列 |
第3参数 | Value | 包含的值 |
标量——逻辑值(True or False)
是否每一列都能找到所对应的值,找到返回Ture,未找到返回False
要求:我们需要判断在数据表例是否有品牌为华为的同时产地是中国的数据。
Contains('表1','表1'[品牌],"华为",'表1'[产地],"中国")
或者
Contains('表1','表4'[品牌],"华为",'表1'[产地],"中国")
返回的结果是True。
解释: 表1代表数据表,表4代表品牌表。后面个判断公式引用给了多对1关系中的1表中的列。
ContainsRow ( <tableExpr>, <scalarExpr>[, <scalarExpr>, …])
位置 | 参数 | 描述 |
---|---|---|
第1参数 | TableExpr | 表表达式,用{}表示,{}里面填写需要查找的值 |
第2参数 | scalarExpr | 需要查找的列 |
标量——逻辑值(True or False)
如果列里有匹配的则返回Ture,未找到则返回False。类似多条件完全匹配
要求:我们需要筛选在数据表例是否有品牌为华为的同时产地是中国的数据。
'表1'[等级]="A" &&'表1'[品牌]="华为"
CONTAINSROW({("A","华为")},'表1'[等级],'表1'[品牌])
以上2个表达式相等。请注意,如果是对应多个列查找,需要在{}里添加()。 如果是单列多个关键词查找,例如:
'表1'[品牌]="华为" || '表1'[品牌]="google"
Containsrow({"google","华为"},'表1'[品牌])
请注意,如果是单个字段查找多个值,则需要去掉()。
请点个赞,转发分享给更多的人。