我是Archer的新手。
我正在尝试基于其他两个字段创建一个计算的日期字段。
- 字段A(日期字段)
- 字段B(值列表):每年(365天);半(182天);每月(30天)
- 字段C(日期字段)
我想看到的是,如果字段A具有6/12/2017和Field B的值,则每年有值(365天),则字段C应该向我展示值6/12/2018
谢谢
这很容易:)
请在FIELD C
中写下以下计算:
IF([FIELD B] =VALUEOF(FIELD B], "Annually"), DATEADD(DAY, 365,[FIELD A]),
IF([FIELD B] =VALUEOF(FIELD B], "Semi"), DATEADD(DAY, 182,[FIELD A]),
DATEADD(DAY, 30,[FIELD A])))
希望这会有所帮助!!
另一种方法是在布局场上捕获一天和年度。如下所示。这可能需要对如何将其合并回计算的日期字段进行一些调整。这种方法的好处是它处理了LEAP年,而且我们不担心每个月有多少天。只需在日期中添加这么多天,就会产生如此多的不良结果,并处理会导致一些真正的复杂解决方案。
注意:计算格式是从RSA的调试计算文档中获取的。
示例
helper Day
DAY([Field A])
助手月
IF(
[Field B] = VALUEOF(FIELD B], "Semi")
, MONTH([Field A])+6
, IF(
[Field B] = VALUEOF(FIELD B], "Monthly")
, MONTH([Field A])+1
, MONTH([Field A])
)
)
助手年
IF(
[Field B] = VALUEOF(FIELD B], "Annually")
, YEAR([Field A])+1
, IF(
[Helper Month] > 12
, YEAR([Field A] + ([Helper Month] - 12))
, YEAR([Field A])
)
)
字段C
IF(
[Helper Month] > 12
, DATEFORMAT(CONCATENATE([Helper Day],"/",[Helper Month] -12,"/",[Helper Year]))
, DATEFORMAT(CONCATENATE([Helper Day],"/",[Helper Month] -12,"/",[Helper Year]))
)