MS Project Server 2016企业自定义字段公式计算异常求助
MS Project Server 2016 自定义字段公式异常问题解答
问题原因
异常确实由数据类型不匹配导致:[Baseline Duration]是MS Project原生的「工期类型」字段,其内部存储的是时间长度的计量值(而非显示的"100"纯数字)。当与纯数字、货币类型字段直接运算时,系统会按内部时间单位(如分钟)进行计算,而非你预期的显示数字"100",最终导致结果偏差。
解决方案:将工期转换为纯数字天数
可以通过公式将工期字段转换为纯数字的天数,以下两种方式均可实现:
方式1:基于标准工作日的固定转换
([Baseline Cost] * [DurationCustom]) / ([Baseline Duration] / 480)
- 原理:标准工作日下1天=8小时=480分钟,
[Baseline Duration]/480会将工期的分钟数转换为纯数字的工作日天数(例如100d对应的48000分钟,除以480后得到100)。 - 若项目使用非标准工作日(如每天6小时),只需将公式中的
480替换为对应分钟数(如6*60=360)即可。
方式2:基于项目日历的通用转换
([Baseline Cost] * [DurationCustom]) / ProjDateDiff([Project Start], [Project Start] + [Baseline Duration], False)
- 原理:
ProjDateDiff函数会自动基于项目日历计算实际工作日天数,无需手动计算分钟数,兼容性更强。
验证
代入你的示例数据:
[Baseline Cost]=1,[DurationCustom]=100,[Baseline Duration]=100d- 修改后的公式计算结果为:
(1*100)/(100)=1,与预期结果一致。
内容的提问来源于stack exchange,提问作者Sugam Kumar
相关产品推荐
相关产品推荐

