DAX按date排列

我在一列中列出了不同的ID,这导致总计不等于总数的总和如下:

在这里输入图像说明

我想要做的是按照时间顺序排列付款date,并select仅显示最高date。 在上面的例子中,总分不会改变,但Townville排不会显示不同的学生数。

这是一个非常具体的要求,我假设有一个简单的方法来做到这一点在DAX – 我试着玩RANKXMAX但我没有更接近解决这个问题。

最后一件事 – Rank必须是由用户select的时间filter的上下文(所以如果他们select2015,它会给第二logging秩1,最高的logging不会显示,如果他们select2015年5月,它会给最高logging等级1和第二logging不会显示)

我认为这是你正在寻找的 – 我给PowerPivot模型添加了一个计算列,根据最后付款date和学生姓名提供排名。 它将排列任何学生的最早付款为1。

该列的代码如下所示:

 =RANKX(FILTER(Table1, [Student Name] = EARLIER([Student Name])), [Last Payment Date]) 

假设你的表被命名为“Table1”!

FILTER是将排名限制在属于仅具有该名字的学生的date的关键。

更新多个表

要设置表格之间的关系,请转到Power Pivot窗口的“主页”选项卡中的模型的“图表视图”。

您可以将字段从一个表格拖到另一个表格创build关系。 这只有在至less有一个字段是唯一的时候才起作用 – 把模型看作一个维度模型是个好主意,表格的行为就像一个事实,其他表格就像维度一样。

从评论中,我会尝试使付款行为像事实,并将其链接到社区和学生表。 在这种情况下,您可以具有以下代码:

 =RANKX(FILTER(Table1, Related('Students'[Student Name]) = EARLIER('Students'[Student Name])), [Last Payment Date]) 

这个计算的列将在您的Payments Fact表上,并且使用对相关字段的查找。

请注意,在这种特定情况下,只需在用于查找学生姓名的学生ID字段上运行filter就会更容易。