【问题标题】:DAX formula to COUNT() or DISCTINTCOUNT() based on condition?基于条件的 COUNT() 或 DISCTINTCOUNT() 的 DAX 公式?
【发布时间】:2019-10-17 17:35:12
【问题描述】:

我想在数据透视表中包含一个使用 DAX 公式的新度量。我有以下 DAX 公式来计算 Column1 中的唯一值

= DISTINCTCOUNT(Table1[Column1])

我怎样才能 COUNT() 值等于“XYZ”而 DISTINCTCOUNT() 值不同于“XYZ”。我已经尝试过类似的方法,但无法正常工作。

=IF(Table1[Column1] <> "XYZ",
     DISTINCTCOUNT(Table1[Column1]),
     COUNT(Table1[Column1])

示例输入

+----+---------+---------+
| Id | Column1 | Column2 |
+----+---------+---------+
| 1  | ABC     | A       |
+----+---------+---------+
| 1  | DEF     | A       |
+----+---------+---------+
| 1  | GHI     | B       |
+----+---------+---------+
| 1  | ABC     | A       |
+----+---------+---------+
| 1  | IIU     | XYZ     |
+----+---------+---------+
| 1  | HYW     | A       |
+----+---------+---------+
| 1  | ABC     | A       |
+----+---------+---------+
| 1  | ABC     | B       |
+----+---------+---------+
| 1  | WQW     | XYZ     |
+----+---------+---------+
| 1  | ABC     | A       |
+----+---------+---------+
| 1  | RTT     | XYZ     |
+----+---------+---------+
| 1  | PPO     | XYZ     |
+----+---------+---------+

我正在寻找的输出:

+----+---+---+-----+
| ID | A | B | XYZ |
+----+---+---+-----+
| 1  | 3 | 2 | 4   |
+----+---+---+-----+

【问题讨论】:

  • 一个度量只能返回一个最终数字。你想返回哪个输出值?
  • @AlexisOlson 嗨,亚历克西斯。我已经在我的原始帖子中更新了我正在寻找的更合适的示例输入和输出。我有一个包含多个 ID 的表(在此示例中,我仅显示 ID=1)。我想计算 Column2="A" 的 DISTINT、Column2="B" 的 DISTICNTCOUTN 和 Column2 = "XYZ" 的 COUNT 值。我希望有意义。谢谢

标签: excel pivot-table formula dax


【解决方案1】:

输出表很有帮助。

我想你想要这样的东西:

IF (
    SELECTEDVALUE ( Table1[Column2] ) = "XYZ",
    COUNT ( Table1[Column2] ),
    DISTINCTCOUNT ( Table1[Column1] )
)

如果您的过滤器上下文中只有一个值并且该值是"XYZ",那么您计算"XYZ" 的出现次数。否则,计算不同的 Column1 值的数量。


如果使用不支持 SELECTEDVALUE 的旧版本,请尝试以下操作:

count =
IF (
    IF ( HASONEVALUE ( Table1[Column2] ), VALUES ( Table1[Column2] ) ) = "XYZ",
    COUNT ( Table1[Column2] ),
    DISTINCTCOUNT ( Table1[Column1] )
)

【讨论】:

  • 感谢亚历克西斯的帮助。我在 DAX 工作室、Excel 2016 中尝试过。首先我输入DEFINE,然后输入MEASURE Table1[myMeasure]= your code,然后我使用EVALUATE ROW("Test", Table1[myMeasure]),我得到错误Failed to resolve name SELECTEDVALUE. It is not a valid table, variable or function name
  • 啊,你一定用的是旧版本。 SELECTEDVALUEIF(HASONEVALUE(&lt;Column&gt;), VALUES(&lt;Column&gt;)) 的快捷方式。
  • 优秀的亚历克西斯。现在它适用于 DAX Studio 和 Excel 数据透视表测量。我遇到了另一个 COUNT() 错误,它似乎只适用于数值,我发现使用 COUNTA() 可以解决这个问题。我在另一张桌子上有类似的情况。我会尝试看看是否可以得到修改您的解决方案的输出,如果没有,我会提出一个新问题。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 2017-01-20
  • 1970-01-01
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多