【发布时间】:2019-06-26 17:32:01
【问题描述】:
我正在管理一项企业战略,该战略将人员和房地产转移到多个地区。该战略由大量项目组成,这些项目可以被认为是相互独立的,并且可以共同总结为该战略。我们捕获的项目包括现有的劳动力成本和房地产成本,我们将其与搬迁的劳动力、房地产和投资成本进行比较。这些项目中的每一个都被捕获在单独的事实表中,并且它们都通过维度表链接。
我能够定义一个变量,使用 UNION 和 SELECTCOLUMNS 创建一个合并表来计算 NPV,效果很好。当我使用相同的方法来计算 XIRR 时,它适用于大多数项目,但对于投资日期大于第一年的项目会给出错误。我尝试使用 FILTER 应用 CALCULATE,其中 Date 大于或等于该项目的第一个投资日期,但它不起作用。
IRR:=VAR CashFlowTable =
UNION (
SELECTCOLUMNS (
LaborComponent,
"Date", LaborComponent[Date],
"Values", LaborComponent[Base vs Deploy],
"Index", LaborComponent[Index]
),
SELECTCOLUMNS (
RealEstateCosts,
"Date", RealEstateCosts[Date],
"Values", RealEstateCosts[Base vs Deploy],
"Index", RealEstateCosts[Index]
),
SELECTCOLUMNS (
HRCosts,
"Date", HRCosts[Date],
"Values", HRCosts[Base vs Deploy],
"Index", HRCosts[Index]
)
)
RETURN
IFERROR (
CALCULATE (
XIRR ( CashFlowTable, [Values], [Date] ),
FILTER(CashFlowTable, [Date] >= [First Investment Date] )),
BLANK ()
)
在哪里
First Investment Date :=
CALCULATE (
MIN ( 'Calendar'[Date] ),
FILTER ( ALL ( 'Calendar'[Date] ), [Total Investment] < 0 )
)
和
Total Investment := SUM ( HRCosts[Value] )
【问题讨论】:
-
[First Investment Date]的 DAX 公式是什么? -
投资表示为负数,公式为:'First Investment Date:=CALCULATE(MIN('Calendar'[Date]),FILTER(ALL('Calendar'[Date])), [总投资]
-
总投资度量的公式很简单,“总投资:=SUM(HRCosts[Value])”
-
我首先尝试将
[First Investment Date]声明为VAR,然后在FILTER中使用它。即使没有修复它,这种方式也更容易调试。 -
宣布第一个投资日期为 VAR 似乎已经解决了这个问题。在声明 VAR 而不是从度量值时它起作用的原因是什么?
标签: dax powerpivot