首页 > 解决方案 > 计算列或度量,用于将优先任务分组到冲刺中

问题描述

我有按优先级排序的任务相关数据以及我想分组到冲刺中的相应故事点。我可以计算累积点数。但是,我正在努力创建一个度量(甚至是计算列)来预测给定已知速度的任务将在哪个冲刺中发生。

假设“速度”= 10

在此处输入图像描述

我的目标是确定表格图像中所见的预测冲刺。基本上,冲刺的故事点总和不能超过速度。不幸的是,简单地将累积点除以速度和四舍五入是行不通的。在这种情况下,第 11 个任务将落入 sprint 3,但 sprint 的总故事点将超过速度。

我已经查看了 Greg Deckler 的For/While 解决方案,但我无法让它解决这个问题。我对 DAX 相当陌生,但我确实尝试了各种其他选项,但找不到解决方案。

标签: powerbidaxmeasure

解决方案


如果您的预测冲刺数量有限,您可以使用以下解决方案:

(我的表叫:Plan)

  1. 使用以下 DAX 语法创建列:

S1 = IF(SUMX(FILTER(Plan, Plan[Priority] <= EARLIER(Plan[Priority])), Plan[Story Points]) > 10, 0, SUMX(FILTER(Plan, Plan[Priority] <= EARLIER(Plan[Priority])), Plan[Story Points]))

S1 将返回 Sprint 1 中每个条目的累积值。

  1. 根据您要预测的 sprint 数量创建 n 个计算度量值/列。(这是该解决方案的坏处,因为它无法扩展):

S2 = IF(SUMX(FILTER(Plan, Plan[S1] = 0 && Plan[Priority] <= EARLIER(Plan[Priority])), Plan[Story Points]) > 10, 0, SUMX(FILTER(Plan, Plan[S1] = 0 && Plan[Priority] <= EARLIER(Plan[Priority])), Plan[Story Points]))

S3 = IF(SUMX(FILTER(Plan, Plan[S2] = 0 && Plan[S1] = 0 && Plan[Priority] <= EARLIER(Plan[Priority])), Plan[Story Points]) > 10, 0, SUMX(FILTER(Plan, Plan[S1] = 0 && Plan[S2] = 0 && Plan[Priority] <= EARLIER(Plan[Priority])), Plan[Story Points]))

S4 = IF(SUMX(FILTER(Plan, Plan[S2] = 0 && Plan[S3] = 0 && Plan[S1] = 0 && Plan[Priority] <= EARLIER(Plan[Priority])), Plan[Story Points]) > 10, 0, SUMX(FILTER(Plan, Plan[S1] = 0 && Plan[S2] = 0 && Plan[S3] = 0 && Plan[Priority] <= EARLIER(Plan[Priority])), Plan[Story Points]))

  1. 创建一个返回与 S1-S4 计算度量相关的字符串的新度量:

Sprint = IF(Plan[S1] > 0, 1, IF(Plan[S2] > 0, 2, IF(Plan[S3] > 0, 3, IF(Plan[S4] > 0, 4))))

  1. 继续隐藏 S1-S4 列...

如果您要预测的冲刺数量有限,这可能是要走的路……

希望这可以帮助!


推荐阅读