Power Query·动态列计算·M语法

时间:2019-05-13 14:27:54

标签: syntax metadata powerquery m

我需要做一个新列,减去两个(前一年的年份),每年都会改变。因此,第一个值必须是:49.443

enter image description here

我已经尝试过了,但是没有用。

"[" & Text.From(Date.Year(DateTime.LocalNow())-1) & "]" -
"[" & Text.From(Date.Year(DateTime.LocalNow())-2) & "]"

谢谢

1 个答案:

答案 0 :(得分:0)

不知道您是否仍然需要这个答案,但我想您已经快到了。

DateTime.LocalNow是正确的,但是您不能使用"["&,因为那样会导致字符串字面量-而您想要的是使用{{ 1}}函数(在Record.Field语句的行上下文中)。

这是一个包含一些模拟/虚拟数据的表。最后一列(each)基本上是前一年的值与两年前的值(在撰写本文时分别为2018年和2017年)之间的差额。

Example table

尝试类似的东西:

differencia anual

由于您使用的是let mockData = Table.FromColumns({{11..20}, List.Numbers(40, 10, 2)}, type table [2017 = Int64.Type, 2018 = Int64.Type]), annualDifference = let currentYear = Date.Year(DateTime.LocalNow()), previousYearHeader = Number.ToText(currentYear - 1), twoYearsAgoHeader = Number.ToText(currentYear - 2), differenceColumn = Table.AddColumn(mockData, "diferencia anual", each Record.Field(_, previousYearHeader) - Record.Field(_, twoYearsAgoHeader), type number) in differenceColumn in annualDifference ,所以要减去的列将由计算机的系统时钟确定-我想这就是您想要的。