Power BI:如何过滤表以仅显示每个项目的最新日期

时间:2020-04-15 02:43:42

标签: powerbi dax powerbi-desktop

我有一张表要加载到Power BI中。我关注3列:Project_NameDocument_NameModified。 表中的数据是这样的:

|   Project_Name   |   Document_Name   |   Modified   |
+------------------+-------------------+--------------+
|   Thing1         |   Apple           |   12/28/2019 |
+------------------+-------------------+--------------+
|   Thing1         |   Orange          |   10/22/2019 |
+------------------+-------------------+--------------+
|   Thing2         |   Banana          |   12/17/2019 |
+------------------+-------------------+--------------+
|   Thing2         |   Banana          |   12/30/2019 |
+------------------+-------------------+--------------+

我要过滤表格,以便显示每个Modified的最新Project_Name日期,如下所示:

|   Project_Name   |   Document_Name   |   Modified   |
+------------------+-------------------+--------------+
|   Thing1         |   Apple           |   12/28/2019 |
+------------------+-------------------+--------------+
|   Thing2         |   Banana          |   12/30/2019 |
+------------------+-------------------+--------------+

我尝试在表中添加一列,以为每个项目的最新日期添加一个True值。我几乎只是复制了在MS论坛上找到的公式。它返回了正确的结果,但省略了许多记录。这是公式:

IsLatestChangedDateByProjectName = 'Project Documents'[Modified] = CALCULATE(MAX('Project Documents'[Modified]),FILTER(ALL('Project Documents'), 'Project Documents'[ProjectName]=EARLIER('Project Documents'[ProjectName]))) 

我还看着this question似乎是在追赶同一件事-但没有发布任何实际解决方案。但是似乎在表级别上比起计算新列,运气过滤更好。

1 个答案:

答案 0 :(得分:0)

我将此交叉发布到PowerBI社区,并且以下工作成功了。在表格上创建度量而非筛选器,我可以在视觉上使用该度量来有效地筛选行。该度量对于每个项目名称的每个最新日期返回1。然后,我可以在度量上过滤视觉效果。

Measure = 
VAR maxd =
    CALCULATE (
        MAX ( 'Project Documents'[Modified] ),
        ALLSELECTED ( 'Table' ),
        VALUES ( 'Project Documents'[Project_Name] )
    )
RETURN
    IF ( MAX ( 'Project Documents'[Modified] ) = maxd, 1, BLANK () )