DAX 中是否有可能对多个列进行区分?
Is there a possibility in DAX to do a distinct over several columns?
我想总结以下 ID 及其基于不同基础的价格。所以这意味着对于 ID 123,两个价格都得到汇总,因为它们不同。但对于 ID 789,价格只计算一次。所以结果我想要 8'500 而不是 11'500。我必须在 DAX 中解决这个问题。
ID
Price
123
1500
456
2000
789
3000
123
2000
789
3000
我试过类似的东西:
CALCULATE(SUM(表名[价格]), FILTER(表名, DISTINCT(表名[ID])), FILTER(表名, DISTINCT(表名[价格])))
或
SUMX(DISTINCT(表名[ID]), FIRSTNONBLANK(表名[价格], 0))
但这两个都不行。
提前感谢您的帮助。
亚尼克
断章取义很难理解您要做什么。从您所做的事情来看,总结价格对我来说没有多大意义。
如果您可以先创建一个计算的 table,这就很容易了:
=DISTINCT('Table')
然后根据计算得出的 table 计算 SUM。
使用 Table.Distinct
在 Power Query 中创建 table 也很容易。
如果不先创建它,很难在 DAX 中访问此计算的 table 的列。
我最后的解决方案是以下措施:
MEASURE Vehicle_dim[dis_sum] =
VAR vTable =
SUMMARIZE (
Vehicle,
Vehicle[vehicleId],
Vehicle[Price]
)
VAR vSum =
SUMX(
vTable,
Vehicle[Price]
)
VAR vCnt =
COUNTROWS (
DISTINCT (
SELECTCOLUMNS (
Vehicle,
"vehicleId", Vehicle[vehicleId],
"Price", Vehicle[Price]
)
)
)
VAR Result =
DIVIDE ( vSum, vCnt )
RETURN
Result
我想总结以下 ID 及其基于不同基础的价格。所以这意味着对于 ID 123,两个价格都得到汇总,因为它们不同。但对于 ID 789,价格只计算一次。所以结果我想要 8'500 而不是 11'500。我必须在 DAX 中解决这个问题。
ID | Price |
---|---|
123 | 1500 |
456 | 2000 |
789 | 3000 |
123 | 2000 |
789 | 3000 |
我试过类似的东西: CALCULATE(SUM(表名[价格]), FILTER(表名, DISTINCT(表名[ID])), FILTER(表名, DISTINCT(表名[价格])))
或
SUMX(DISTINCT(表名[ID]), FIRSTNONBLANK(表名[价格], 0))
但这两个都不行。
提前感谢您的帮助。 亚尼克
断章取义很难理解您要做什么。从您所做的事情来看,总结价格对我来说没有多大意义。
如果您可以先创建一个计算的 table,这就很容易了:
=DISTINCT('Table')
然后根据计算得出的 table 计算 SUM。
使用 Table.Distinct
在 Power Query 中创建 table 也很容易。
如果不先创建它,很难在 DAX 中访问此计算的 table 的列。
我最后的解决方案是以下措施:
MEASURE Vehicle_dim[dis_sum] =
VAR vTable =
SUMMARIZE (
Vehicle,
Vehicle[vehicleId],
Vehicle[Price]
)
VAR vSum =
SUMX(
vTable,
Vehicle[Price]
)
VAR vCnt =
COUNTROWS (
DISTINCT (
SELECTCOLUMNS (
Vehicle,
"vehicleId", Vehicle[vehicleId],
"Price", Vehicle[Price]
)
)
)
VAR Result =
DIVIDE ( vSum, vCnt )
RETURN
Result