Power BI:如果 table 的日期介于另一个 table 的开始日期和结束日期之间而没有关系

Power BI : If a date from a table is between a start date and a end date from another table without relationship

我需要你的帮助和技能。 好久没被屏蔽了

在 Power BI 中,我必须对 table 之一执行转换,T_BACKLOG。

我正在尝试获取创建问题的冲刺的名称。 在 table T_BACKLOG 中,我想添加一个自定义列 (SPRINT_NAME) 以从 R_SPRINT.

中获取 Sprint 的名称

请在下面找到更多详细信息:

MODEL : 没有关系的表

R_SPRINT 包含 :

T_BACKLOG 包含 :

预期结果T_BACKLOG“扩展”

逻辑: 根据 T_BACKLOG 中问题的创建日期,在 table R_SPRINT 中找到关于开始日期 (START_DATE) 和结束日期 (END_DATE) 的冲刺。

提前致谢:)

加缪斯

这是一个使用 Power Query 的解决方案:

第 1 步:复制 R_SPRINT table 并启用其加载。它应该是这样的。

第二步:在重复的table.

中使用以下电源查询代码

注意:请记住,您必须根据自己的情况调整下面的代码。

let
    //All your previos Steps. Remember to change "Changed Type" in the next row for your last step name.
    #"Inserted Date Subtraction" = Table.AddColumn(#"Changed Type", "DATE_RANGE", each Duration.Days([END_DATE] - [START_DATE]), Int64.Type),
    #"Added Custom" = Table.AddColumn(#"Inserted Date Subtraction", "DATE", each List.Dates([START_DATE],[DATE_RANGE]+1,#duration(1,0,0,0))
),
    #"Expanded Custom" = Table.TransformColumnTypes(Table.ExpandListColumn(#"Added Custom", "DATE"),{{"DATE", type date}}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"DATE_RANGE"})
in
    #"Removed Columns"

如果您正确应用了代码,您将得到如下 table:

基本上你在冲刺范围内的每一天都有一个记录。

第 3 步:现在我们可以使用这个新的“DATE”列来连接两个 table。

转到 T_BACKLOG table 并在 table 之间创建连接。然后展开 table 以获取“NAME”列。您可以使用以下代码:

#"Merged Queries" = Table.NestedJoin(#"Changed Type", {"CREATION_DATE"}, R_SPRINT, {"DATE"}, "R_SPRINT", JoinKind.LeftOuter),
#"Expanded R_SPRINT" = Table.ExpandTableColumn(#"Merged Queries", "R_SPRINT", {"NAME"}, {"R_SPRINT.NAME"})

结果: