0

在上个月我试图用这个表达式显示的图表中:

=If( [SH_historico_1.ANOMES] >= '$(=Max([SH_historico_1.ANOMES])-1)' and   [SH_historico_1.ANOMES] <= '$(=Max([SH_historico_1.ANOMES]))', [SH_historico_1.ANOMES])

当我写作时[SH_historico_1.ANOMES],我指的是期间,比如'YYYYMM',当我减去时,-1我只是减去 1,例如:202002 -1 = 202001,所以有效,因为它会计算正确的期间。

但是...如果月份是一月?YYYY01? 例如 202001 -1 = 20200000 月份数它不存在。00 应该是 12。

所以我想知道如果我把这个数字当作一个日期呢?我正在尝试使用Date()功能,但我有点卡住了。

正确的语法怎么可能?

我认为的另一个解决方案是在编辑器代码中设置一些代码,但仍在开发这个想法。

欢迎任何帮助。

4

1 回答 1

1

当您想要添加/减去月份时,最好使用AddMonths()函数:AddMonths( DateField, NumberOfMonths). 此功能将处理一月问题

在您的情况下将是:(=AddMonths(Max([SH_historico_1.ANOMES]), -1)如您所见,月数可以是负数,这将从日期中减去月数)

还有一点建议:如果您打算在表达式中使用此计算,请考虑使用集合分析而不是if..then..else语句。if语句速度较慢,并且在表达式中使用时会消耗更多资源

于 2020-03-24T19:23:50.183 回答