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 包含 :
- Sprint 的名称 (NAME)
- 冲刺的开始日期 (START_DATE),法语格式。
- 和冲刺的结束日期 (END_DATE),法语格式。
T_BACKLOG 包含 :
- 问题的 ID (ID)
- 问题的标题 (TITLE)
- 问题的创建日期 (CREATION_DATE)
预期结果T_BACKLOG“扩展”:
- 问题的 ID (ID)
- 问题的标题 (TITLE)
- 问题的创建日期 (CREATION_DATE)
- SPRINT_NAME :自定义列必须包含正确的 sprint 名称,与 sprint 的开始和结束日期相比,问题的创建日期。
逻辑:
根据 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"})
结果:
我需要你的帮助和技能。 好久没被屏蔽了
在 Power BI 中,我必须对 table 之一执行转换,T_BACKLOG。
我正在尝试获取创建问题的冲刺的名称。 在 table T_BACKLOG 中,我想添加一个自定义列 (SPRINT_NAME) 以从 R_SPRINT.
中获取 Sprint 的名称请在下面找到更多详细信息:
MODEL : 没有关系的表
R_SPRINT 包含 :
- Sprint 的名称 (NAME)
- 冲刺的开始日期 (START_DATE),法语格式。
- 和冲刺的结束日期 (END_DATE),法语格式。
T_BACKLOG 包含 :
- 问题的 ID (ID)
- 问题的标题 (TITLE)
- 问题的创建日期 (CREATION_DATE)
预期结果T_BACKLOG“扩展”:
- 问题的 ID (ID)
- 问题的标题 (TITLE)
- 问题的创建日期 (CREATION_DATE)
- SPRINT_NAME :自定义列必须包含正确的 sprint 名称,与 sprint 的开始和结束日期相比,问题的创建日期。
逻辑: 根据 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"})
结果: