DAX度量,用于识别唯一列组合的金额



我的数据包含重复(故意(,其中一个项目可能有多个类别。

我需要创建DAX度量值(最后一列(,该度量值仅在distCount(每个项目类别的不同计数(列等于1的情况下才会取值-distCount不在数据集中,应该作为度量值的一部分进行计算。

最后两列基本上是预期结果。例如,项目p2在整个数据集中只有1个类别(c1(,但例如,项目p5有3个唯一类别(c1、c4、c2(。[date]只是为了说明数据集可能要大得多(在列和行的数量上(。

+-----------+---------+----------+--------+-----------+---------+
|   date    | project | category | amount | distCount | measure |
+-----------+---------+----------+--------+-----------+---------+
| 4/12/2021 | p2      | c1       | 12.5   |         1 | 12.5    |
| 4/12/2021 | p3      | c1       | 7.5    |         1 | 7.5     |
| 4/12/2021 | p4      | c1       | 72.5   |         2 | 0       |
| 4/12/2021 | p4      | c4       | 72.5   |         2 | 0       |
| 4/12/2021 | p5      | c1       | 57     |         3 | 0       |
| 4/12/2021 | p5      | c4       | 57     |         3 | 0       |
| 4/12/2021 | p5      | c2       | 57     |         3 | 0       |
| 4/11/2021 | p2      | c1       | 15     |         1 | 15      |
| 4/11/2021 | p3      | c1       | 18     |         1 | 18      |
| 4/11/2021 | p4      | c1       | 72.5   |         2 | 0       |
| 4/11/2021 | p4      | c4       | 72.5   |         2 | 0       |
| 4/11/2021 | p5      | c1       | 67     |         3 | 0       |
| 4/11/2021 | p5      | c4       | 67     |         3 | 0       |
| 4/11/2021 | p5      | c2       | 67     |         3 | 0       |
+-----------+---------+----------+--------+-----------+---------+

我的尝试是完全错误的(请不要考虑(:

=IF(
CALCULATE(
COUNTROWS(data),
FILTER(data,
CONCATENATE(data[category],data[project])=
DISTINCT(CONCATENATE(data[category],data[project]))
))>1,SUM(0),SUM(data[amount]))

这个怎么样?

measure =
IF (
CALCULATE (
COUNTROWS ( data ),
ALLEXCEPT ( data, data[project], data[category] )
) = 1,
SUM ( data[amount] ),
0
)

这将对数据表中projectcategory与当前筛选器上下文匹配的行进行计数,并在该计数为单数时对amount求和。

最新更新