Не уверен, что вам все еще нужен ответ, но я думаю, что вы почти у цели.
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
, вычитаемые столбцы будут определяться системными часами вашего компьютера - что, я думаю, то, что вы хотели.