过滤小于某个从另一个公式派生的特定值的列,然后获取最大值

时间:2014-11-05 19:10:52

标签: excel-2013 powerpivot dax

我有一张表,其中包含所有学生的成绩。假设我有一个从另一个公式派生的值UpperLimit,如何获得小于UpperLimit的最高等级?

示例:

Grade
-----
18
72
43
100
65
75

如果UpperLimit为75(计算后),那么它应该返回72,因为72是75以下的最高数字。

我的想法是首先过滤小于UpperLimit的表/列,然后从中获取最大值。目前,我的代码是这样的:

MAXX(
    FILTER(
        VALUES(Student[Grade]),
        Student[Grade] < [UpperLimit]
    ),
    Student[Grade]
)

但是,它返回100(最高整体值)。

有人可以解释为什么它会返回100,以及如何在DAX中修复公式?

1 个答案:

答案 0 :(得分:0)

安德鲁,

我建议使用disconnected slicer technique。通过这种方法,我可以轻松地通过以下公式实现您的目标:

=CALCULATE(MAX(Grades[Grade]), FILTER(Grades, [Grade] < [Upper Limit Selected]))

其中[上限选择]是断开连接切片器返回的值。我上传了source file to my Dropbox - 让我们知道这是否适合你。