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