Gabriel Valvin Asked: 2022-02-23 00:19:16 +0800 CST2022-02-23 00:19:16 +0800 CST 2022-02-23 00:19:16 +0800 CST DAX 计算具有开始日期和结束日期的一年的值的总和 772 我无法在DAX中进行管理,要计算一年的值的总和,我想根据开始日期和结束日期计算一年中每个值的比例。 例如,我希望能够计算每一年的“工作量”在该年的值,所以在 2019 年 01/02/2019 和年底之间的份额为 150,然后在 150 之间的份额01/01/2020 和 12/31/2020 然后是 01/01/2021 和 05/05/2021 之间的份额(显然不要忘记阶段 1-2 和其他 ID)。 powerbi dax 1 个回答 Voted Best Answer GregGalloway 2022-02-24T07:53:53+08:002022-02-24T07:53:53+08:00 请调用您在示例 FactWorkload 中列出的表。 创建一个名为 DimDate 的新表,每天至少跨越 FactWorkload 中提到的日期范围(如果不是更多)。在该表中添加 Year 列。不要在 DimDate 和 FactWorkload 之间创建关系。 创建一个新的 DAX 度量: Prorated Workload = SUMX( FactWorkload, VAR DaysSelected = CALCULATE(COUNTROWS(DimDate),DimDate[Date] >= EARLIER(FactWorkload[Start Date]) && DimDate[Date] < EARLIER(FactWorkload[End Date])) VAR TotalWorkloadDays = DATEDIFF(FactWorkload[Start Date],FactWorkload[End Date],DAY) RETURN DIVIDE(FactWorkload[Workload] * DaysSelected, TotalWorkloadDays) ) 我得到的行上的 DimDate[Year] 和列上的 FactWorkload[ID] 的结果如下所示。如果我理解了您的计算,我相信这是正确划分工作量的年份。 例如,89.35 (2020 A) 的计算结果为 277 * 200 / 620 = 89.35。这是 2020 年的 277 天 * A 阶段 0-1 的 200 工作负载值 / 2020 年 3 月 30 日到 2021 年 12 月 10 日之间的 620 天,不包括结束日期。
请调用您在示例 FactWorkload 中列出的表。
创建一个名为 DimDate 的新表,每天至少跨越 FactWorkload 中提到的日期范围(如果不是更多)。在该表中添加 Year 列。不要在 DimDate 和 FactWorkload 之间创建关系。
创建一个新的 DAX 度量:
我得到的行上的 DimDate[Year] 和列上的 FactWorkload[ID] 的结果如下所示。如果我理解了您的计算,我相信这是正确划分工作量的年份。
例如,89.35 (2020 A) 的计算结果为 277 * 200 / 620 = 89.35。这是 2020 年的 277 天 * A 阶段 0-1 的 200 工作负载值 / 2020 年 3 月 30 日到 2021 年 12 月 10 日之间的 620 天,不包括结束日期。