DAX根据查找表中2列之间的度量查找另一个表中的值

时间:2018-04-28 00:41:14

标签: powerbi dax ssas-tabular

我有一个表格模型,我们在其中计算指标的分数。性能得分是在模型中测量的。查询的结果集如下所示:

MetricID|PerformanceScore 1 50 2 30 根据分数,我们根据绩效分数所属的范围来分配分数。分数表如下所示:

Metric|LowRange|HighRange|Points 1 0 60 1 1 60 100 2 2 0 15 1 2 15 100 2

我希望能够在模型中添加一个度量,以便我们返回:

MetricID|PerformanceScore|Points 1 50 1 2 30 2 创建这项措施会是什么?

1 个答案:

答案 0 :(得分:0)

我假设您的表名为PerformanceRanges,并且在列MetricID = Metric上有关系。

您应该能够创建一个计算列,该列在第一个表Points上提取相应的Performace值,如下所示:

Points = MAXX(
             FILTER(RELATEDTABLE(Ranges),
                 Ranges[LowRange] <= Performance[PerformanceScore] &&
                 Ranges[HighRange] > Performance[PerformanceScore]),
             Ranges[Points])

如果您想这样做,请尝试以下方法:

PointsMeasure = MAXX(
                    FILTER(RELATEDTABLE(Ranges),
                        Ranges[LowRange] <= MAX(Performance[PerformanceScore]) &&
                        Ranges[HighRange] > MAX(Performance[PerformanceScore])),
                    Ranges[Points])

我喜欢使用变量来使其更具可读性:

PointsMeasure =
    VAR Score = MAX(Performance[PerformanceScore])
    RETURN MAXX(
               FILTER(RELATEDTABLE(Ranges),
                   Ranges[LowRange] <= Score &&
                   Ranges[HighRange] > Score),
               Ranges[Points])