0

我是阿切尔的新手。

我正在尝试基于 2 个其他字段创建计算日期字段。

  • 字段 A(日期字段)
  • 字段 B(值列表):每年(365 天);半年(182 天);每月(30 天)
  • 字段 C(日期字段)

我想看到的是,如果字段 A 的值是 2017 年 6 月 12 日,字段 B 的值是每年(365 天),那么字段 C 应该向我显示 2018 年 6 月 12 日的值

谢谢

4

2 回答 2

1

这很容易:)

请将以下计算写在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])))

希望这会有所帮助!

于 2018-01-13T14:59:26.643 回答
0

另一种方法是在非布局字段中捕获日月和年。示例如下所示。这可能需要对如何将其组合回计算日期字段进行一些调整。这种方法的好处是它可以处理闰年,而且我们不关心每个月有多少天。简单地将这么多天添加到日期将导致这么多不需要的结果,并且处理这些将导致一些真正复杂的解决方案。

注意:计算的格式取自 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]))
)
于 2019-07-11T00:28:28.747 回答