Power Query: передать имя столбца как параметр функции - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь передать имена столбцов в функцию мощного запроса - если я передаю их как [columnname] в вызове функции, он пытается реализовать их вне функции; если я передаю использование [параметра] внутри самой функции, он ищет столбец «параметр», а не имя столбца, переданного в вызове.

В другом месте StackExchange рекомендует использовать Table.Column (таблица, имя столбца), чтобы обойти это, но я получаю весь столбец за один раз, вместо того, чтобы иметь возможность сравнивать соответствующие записи в столбце.

Кто-нибудь может помочь? Вот код

(table,Mt0,Mt1) => let 
    #"Add Yt.1" = Table.AddColumn(table, "placeholder", 
        each if Table.Column(table,Mt0) <= 0 or - Table.Column(table,Mt1) < Table.Column(table,Mt0)
            then Table.FromRecords({[Mt0 = Table.Column(table,Mt0), Mt1 = Table.Column(table,Mt1)]})
        else Table.FromRecords({[Mt0 = 0,Mt1 = Table.Column(table,Mt1) + Table.Column(table,Mt0)]}))/*,
    #"Expand Yt.1" = Table.ExpandTableColumn(Table.RemoveColumns(#"Add Yt.1",{"Mt0", "Mt1"}), "placeholder", {"Mt0","Mt1"})*/
in #"Add Yt.1"

Это хранится как Query1, и я звоню, используя Query1 (имя таблицы, Y1M, Y2M)

Эта версия выдает ошибку: Мы не можем применить оператор "<=" к типам List и Number (поэтому, хотя он может ссылаться на столбец Y1M по назначению, он сравнивает весь столбец (в виде списка) с «0» в первом неравенстве, а не с одной записью за раз. </p>

Помощь !!

1 Ответ

0 голосов
/ 25 апреля 2019

Попробуйте использовать Record.Field(_, Mt0) вместо Table.Column

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...