将日期与其所属的范围相匹配

时间:2018-08-31 08:08:19

标签: powerbi dax

我正在使用vsts分析视图在Power BI中创建报告。

我有一个带有列的表-Iteration Start DateIteration End DateIteration PathWork Item IdCreated Date

对于某些工作项,我只有它们的Created Date,没有Iteration Start DateIteration End Date(因为它们尚未添加到任何迭代中)。

但是,我想根据Iteration Start Date在所有其他现有Iteration End Date和{之间的位置来为他们分配Iteration PathCreated DateIteration Start Date {1}}。

为此,我需要一种方法来比较Iteration End DateCreated Date为空的工作项目的Iteration Start Date与所有其他行Iteration End Date和{{1} },并在Iteration Start Date适合的地方分配Iteration End DateIteration Start Date

关于如何实现这一目标的任何想法?

因此,如该图所示,

Image

在工作项目ID Iteration End DateCreated Date的新列New Iteration Start DateNew Iteration End DateNew Iteration Path中,应将它们设置为363556,分别为3623145/9/2018 12:00:00 AM

类似地,对于工作项ID 5/23/2018 12:00:00 AM,应将它们分别设置为Intelligent Migration\Sprint 10 (5-22-2018)3605074/25/2018 12:00:00 AM

1 个答案:

答案 0 :(得分:0)

您可以做的是选择一个ID值(在所有可能的值上使用最大值或最小值),其中Created ID介于迭代开始和结束日期之间,然后使用该ID值查找另一个该行中的列值。例如,您可以如下计算新的开始日期:

New Start = 
    VAR CreatedDate = Iterations[Created]
    VAR MatchID = MAXX(
                      FILTER(Iterations,
                          Iterations[Start] < CreatedDate &&
                          Iterations[End]  >= CreatedDate
                      ),
                      Iterations[ID])
    RETURN LOOKUPVALUE(Iterations[Start], Iterations[ID], MatchID)

(注意:为了便于阅读,我假设表名是Iterations,并缩写了列名。)

要获取新的结束日期和新路径,只需用适当的列替换查找函数的第一个参数。