10.5 理解HASONEVALUE


# HASONEVALUE 2019-11-06分类:条件判断函数阅读(21)评论(0)## HASONEVALUE HASONEVALUE ( )当指定列中只有一个值时,返回true。
HASONEVALUE的作用非常直观,用来判断当前列是否只有唯一值。在VALUES函数部分,你可能记得DAX有这样一个特性:
如果返回表的表达式结果是包含一行一列的表, 则可以转换为标量值, 这种转换在需要时自动完成
实际上, 如果结果恰好是一行和一列, 则可以将任何返回表的表达式用作标量值。如果表返回多行, 在执行时会出现此错误:
该表达式引用多列,多列不能转换为标量值
因此,在表表达式返回多行(在编写DAX表达式时,你应该已经知道表表达式是否只返回一行)的情况下,你应该始终使用返回不同结果的条件来保护对标量值的转换。使用COUNTROWS可以检查目标列是否只有一个选中的值,还有一种更简单的方法是使用HASONEVALUE,它执行相同的检查,如果列只有一个值时返回TRUE,否则返回FALSE。以下两种语法是等价的:

  1. COUNTROWS ( VALUES ( ) ) = 1
  2. HASONEVALUE ( ) 你应该使用HASONEVALUE而不是COUNTROWS,原因有二:它更易于阅读,而且计算的时候可能会稍微快一些。下面是基于HASONEVALUE的Color Name度量值的推荐写法:

  3. [Color Name] :=

  4. IF (
  5. HASONEVALUE ( Product[Color] ),
  6. VALUES ( Product[Color] )
  7. ) 当你熟悉了另一个函数SELECTEDVALUE之后,你会发现它的写法更简单,比如上面的度量值等价于
  • [Color Name] := SELECTEDVALUE ( Product[color] )

    [

    ](#)[

    1. ](https://www.powerbigeek.com/hasonevalue/#)[
    2. ](https://www.powerbigeek.com/hasonevalue/#)[
    3. ](https://www.powerbigeek.com/hasonevalue/#) [
    4. ](http://app.yinxiang.com/clip.action?url=https://www.powerbigeek.com/hasonevalue/)[
    5. ](https://www.powerbigeek.com/hasonevalue/mailto:?subject=HASONEVALUE&body=https://www.powerbigeek.com/hasonevalue/) [条件判断函数](https://www.powerbigeek.com/tag/%e6%9d%a1%e4%bb%b6%e5%88%a4%e6%96%ad%e5%87%bd%e6%95%b0/)上一篇<br />[HASONEFILTER](https://www.powerbigeek.com/hasonefilter/)下一篇<br />[无法连接MySQL数据库,Could not load file or assembly ‘Renci.SshNet, Version=2016.1.0.0…](https://www.powerbigeek.com/mysq-could-not-load-file-or-assembly-renci-sshnet/)### 相关推荐
  • HASONEFILTER-PowerBI极客HASONEFILTER

  • ISFILTERED 和 ISCROSSFILTERED-PowerBI极客ISFILTERED 和 ISCROSSFILTERED
  • ISINSCOPE-PowerBI极客ISINSCOPE
  • IF 和 SWITCH-PowerBI极客IF 和 SWITCH

    说点什么

    My content and settingstoken登出token
    1. 订阅本文评论 <br />