Hasonevalue(<columnName>)
参数 | 描述 |
---|---|
ColumnName | 用于检查的列 |
标量(逻辑值)——False or Ture
通常和If函数搭配使用
E. 案例
总成绩:=SUM([成绩])
Hasonevalue总成绩:=if(Hasonevalue('表2'[姓名]),[总成绩],Blank())
解释: 我们可以看到在右边的透视表中,只显示了李老师,是因为只有李老师的数据是唯一值。
再来看一个案例:
我们希望在我们选择货币的时候能够直接进行转换,效果如下。
外汇销售金额:=If(Hasonevalue('汇率'[货币]),
Firstnonblank('汇率'[汇率],"")*[总销售金额],
Blank())
解释: 通过Hasonevalue判断是否为选择了单个货币种类,则计算转换汇率。这里需要注意的是,在这个业务模型中,总销售金额的货币是不确定的,是通过我们货币进行转换成人民币,而不是人民币转换成美金。当然也可以换过来操作。
外汇销售金额:=If(Hasonevalue('汇率'[货币]),
Divide([总销售金额],Firstnonblank('汇率'[汇率],"")),
Blank())
HasoneFilter(<columnName>)
标量——逻辑值(Ture or False)
哪些会涉及到筛选?
E. 案例
HasoneValue总成绩:=If(Hasonefilter([姓名]),[总成绩],Blank())
因为姓名被放入到列里面,是被筛选了,所以成绩会显示。而另一边只放了学科和教课老师,姓名没有在筛选条件里,所以不显示。
我们来看3个图
HasoneValue总成绩:=If(HasoneFilter([姓名]),[总成绩],Blank())
HasoneFilter总成绩:=If(HasoneValue('表2'[姓名]),[总成绩],Blank())
解释: 姓名未被筛选,所以Hasonefilter返回空值; 姓名因为有多个值,所以Hasonevalue返回空值。
解释: 姓名被筛选,而且只有姓名被筛选一次,所以HasoneFilter显示成绩; 姓名被作为列后,只有单个值,所以HasoneValue显示成绩。
解释: 姓名未被筛选,也就不存在几个筛选的问题,所以Hasonefilter返回空值; 教师被筛选后,因为只有李老师对应一个姓名,也就是李四。所以返回李四的李老师的成绩60。
请点个赞,转发分享给更多的人。