这是我目前的公式:
if left ({Command.NextDueDate},7) = "2016-01" then "January'16"
else if left ({Command.NextDueDate},7) = "2016-02" then "February'16"
...
else if left ({Command.NextDueDate},7) = "2017-01" then "January'17"
我将数据库中的日期字符串格式化为2016-01-05
,2016-01-06
... 2017-01-01
。我将它们用作列。
我想查找年份(16),然后是月份(01),然后查找下一列,再次查找年份(16)和月份(2)。然后我想将月份解释为缩短的月份名称,例如1月或2月。最后,我想将数据重新加入。所以最终它会像这样工作:
如果不为每年的每个月手动输入if-else子句,我该怎么做?
答案 0 :(得分:0)
无需硬编码 - 使用此公式获取月份和年份:
MonthName(Month(CDateTime({Command.NextDueDate}))) +
Right(Left({Command.NextDueDate},4),2);
答案 1 :(得分:0)
当您通过巧妙使用公式获取信息时,请不要使用if / else语句。有几种方法可以让Ankur的公式变得更好:
要获取简短的月份名称,请使用:MonthName(Month(CDateTime({Command.NextDueDate})),True)
<最后 True 将名称缩短为&#34; Jan&#34;,&#34; 2月&#34;,&#34; 3月&#34;等等。
要获得年份,请使用Year(CDateTime({Command.NextDueDate}))
结合这两个公式,它为你做所有工作:
MonthName(Month(CDateTime({Command.NextDueDate})),True) +
Year(CDateTime({Command.NextDueDate}))