DAX按date排列
我在一列中列出了不同的ID,这导致总计不等于总数的总和如下:
我想要做的是按照时间顺序排列付款date,并select仅显示最高date。 在上面的例子中,总分不会改变,但Townville排不会显示不同的学生数。
这是一个非常具体的要求,我假设有一个简单的方法来做到这一点在DAX – 我试着玩RANKX
和MAX
但我没有更接近解决这个问题。
最后一件事 – 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就会更容易。