0

我需要做一个新列作为从两个(上一年的年份)的减法,每年都会改变。所以,第一个值必须是:49.443

在此处输入图像描述

我已经尝试过了,但它不起作用。

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

谢谢

4

1 回答 1

0

不知道你是否还需要这个答案,但我想你快到了。

DateTime.LocalNow是正确的,但是您不能使用"["并且&因为这将导致字符串文字 - 而您想要的是使用函数之类的动态字段访问(在语句Record.Field的行上下文中)。each

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

示例表

尝试类似:

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

由于您使用的是DateTime.LocalNow,被减去的列将由您计算机的系统时钟决定——我认为这是您想要的。

于 2019-06-08T18:50:25.110 回答