我是阿切尔的新手。
我正在尝试基于 2 个其他字段创建计算日期字段。
- 字段 A(日期字段)
- 字段 B(值列表):每年(365 天);半年(182 天);每月(30 天)
- 字段 C(日期字段)
我想看到的是,如果字段 A 的值是 2017 年 6 月 12 日,字段 B 的值是每年(365 天),那么字段 C 应该向我显示 2018 年 6 月 12 日的值
谢谢
我是阿切尔的新手。
我正在尝试基于 2 个其他字段创建计算日期字段。
我想看到的是,如果字段 A 的值是 2017 年 6 月 12 日,字段 B 的值是每年(365 天),那么字段 C 应该向我显示 2018 年 6 月 12 日的值
谢谢
这很容易:)
请将以下计算写在FIELD C
:(使用 DATEADD 内置函数)
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])))
希望这会有所帮助!
另一种方法是在非布局字段中捕获日月和年。示例如下所示。这可能需要对如何将其组合回计算日期字段进行一些调整。这种方法的好处是它可以处理闰年,而且我们不关心每个月有多少天。简单地将这么多天添加到日期将导致这么多不需要的结果,并且处理这些将导致一些真正复杂的解决方案。
注意:计算的格式取自 RSA 关于调试计算的文档。
例子
助手日
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]))
)