0

我指望一列中的不同 ID - 这导致小计的总和不等于总计,如下所示:

在此处输入图像描述

我想要做的是按时间顺序排列付款日期,然后只选择要显示的最高日期。在上面的示例中,总计不会改变,但 Townville 行不会显示 Distinct Student Count。

这是一个非常具体的要求,我假设在 DAX 中有一种简单的方法可以做到这一点 - 我已经尝试过两者RANKXMAX但离解决这个问题还差得远。

最后一件事 - 排名必须与用户选择的时间过滤器相关(因此,如果他们选择 2015 年,它将给出第二条记录排名 1,而最高记录不会显示。如果他们选择 2015 年 5 月,它将给出最高记录排名第一,第二记录不显示)

4

1 回答 1

1

我认为这就是您要查找的内容 - 我在 PowerPivot 模型中添加了一个计算列,该列根据最后付款日期和学生姓名提供排名。它将任何学生的最早付款列为 1。

该列的代码如下:

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

...假设您的表名为“Table1”!

FILTER 是将排名限制在仅属于同名学生的日期的关键。

更新多个表

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

您可以将字段从一个表拖到另一个表以创建关系。这仅在至少有一个字段是唯一的情况下才有效 - 将模型视为维度模型是个好主意,其中一个表充当事实,而其周围的其他表充当维度。

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

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

此计算列将位于您的 Payments Fact 表中,并且它使用对相关字段的查找。

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

于 2016-08-04T15:55:18.403 回答