Эта функция M (Power Query) выдает эту ошибку: «[Expression.Error] Мы не можем преобразовать значение типа Function в тип List». Цель состоит в том, чтобы вывести столбец таблицы, представляющий разницу между двумя исходными столбцами.
Например: • 1 667
let
Source = Table.FromRecords({
[row = 1, first = "1234", second = "567"],
[row = 2, first = "9876", second = "543"],
[row = 3, first = "5437", second = "890"],
[row = 4, first = "2321", second = "550"]
}),
Source2 = Table.FromColumns(
{Source[#"row"], each Source[#"first"] - Source[#"second"]},{"row","diff"})
in
Source2
Может ли кто-нибудь указать на ошибку? Я пытаюсь вычесть один существующий столбец из другого и поместить результат в новый столбец.
Синтаксис функции Table.FromColumns неверен. Вы просто пытаетесь это сделать?
let
Source = Table.FromRecords({
[row = 1, first = "1234", second = "567"],
[row = 2, first = "9876", second = "543"],
[row = 3, first = "5437", second = "890"],
[row = 4, first = "2321", second = "550"]
}),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"first", Int64.Type}, {"second", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each [first]-[second]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"first", "second"})
in
#"Removed Columns"
Ваш синтаксис неверен. Возможно, это то, что вы хотите:
let
Source = Table.FromRecords({
[row = 1, first = "1234", second = "567"],
[row = 2, first = "9876", second = "543"],
[row = 3, first = "5437", second = "890"],
[row = 4, first = "2321", second = "550"]}
),
Source2 = Table.FromColumns(
{Source[#"row"]}
& {List.Accumulate(
{0..Table.RowCount(Source)-1},
{},
(s,c)=> s & {Number.From(Source[first]{c})-Number.From(Source[second]{c})})},
type table[row=Int64.Type, diff=Int64.Type])
in
Source2
Спасибо, Рон, действительно полезный ответ.
Дэвид – большое спасибо за ваш ответ