Excel Power Query: переменные для имени таблицы - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь добиться чего-то, что кажется достаточно простым, но я не могу найти ответ на ... заменить имя таблицы или запрос мощности на переменную.

В настоящее время пытаюсь сделать это с помощью запроса на слияние, чтобы он выглядел примерно так: что я пытаюсь ...

Спасибо!

// Редактировать: На самом деле не хочу делать функцию - надеюсь, что пользователи будут использовать как можно проще, чтобы они могли обновить именованную таблицу в книге, refre sh, а затем получить таблицу в качестве вывода. Вот мой текущий код - надеюсь, это поможет. Мои замены кода региона работали нормально, но замены Дней нет - мне нужно каждый день (понедельник-четверг) заменять переменными дня (StartDay, Day2 и т. Д. c.). У каждого из них есть отдельный текстовый запрос, ссылающийся на входные данные рабочей книги Excel, и каждый из них должен выполнить запрос на основе текста (например, StartDay = Monday, поэтому должен получить запрос Monday). Это ошибка, которую я получаю, предполагая, что она читает его как текст «Понедельник», а не как запрос понедельника.

Expression.Error: Мы не можем преобразовать значение «Понедельник» в тип Table. Подробности: Значение = Тип понедельника = Тип

let

ANDOriginCode = OriginRegion,
ANDDestinationCode = DestinationRegion,
ANDStartDay = StartDay,
ANDDay2 = Day2,
ANDDay3 = Day3,
ANDDay4 = Day4,
ANDDay5 = Day5,
Source = Table.NestedJoin(Monday,{"Tuesday Destination Region Code"},Tuesday,{"Tuesday Origin Region Code"},"Append1 (3)",JoinKind.Inner),
#"Filtered Rows1" = Table.SelectRows(Source, each [Monday Origin Region Code] = OriginRegion),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows1",{"ID", "Pickup Day of Week", "Delivery Day of Week"}),
#"Expanded Append1 (3)" = Table.ExpandTableColumn(#"Removed Columns", "Append1 (3)", {"Tuesday Origin Region Code", "Wednesday Destination Region Code", "Tuesday Projected Number of Loads"}, {"Tuesday Origin Region Code", "Wednesday Destination Region Code", "Tuesday Projected Number of Loads"}),
#"Merged Queries" = Table.NestedJoin(#"Expanded Append1 (3)",{"Wednesday Destination Region Code"},Wednesday,{"Wednesday Origin Region Code"},"Append1 (4)",JoinKind.Inner),
#"Expanded Append1 (4)" = Table.ExpandTableColumn(#"Merged Queries", "Append1 (4)", {"Wednesday Origin Region Code", "Thursday Destination Region Code", "Wednesday Projected Number of Loads"}, {"Wednesday Origin Region Code", "Thursday Destination Region Code", "Wednesday Projected Number of Loads"})
#"Merged Queries1" = Table.NestedJoin(#"Expanded Append1 (4)",{"Thursday Destination Region Code"},Thursday,{"Thursday Origin Region Code"},"Append1 (5)",JoinKind.Inner)

in

#"Merged Queries1"

1 Ответ

0 голосов
/ 02 февраля 2020

Это может помочь:

let
    Source = (VARIABLE1 as table, VARIABLE2 as table) => Table.NestedJoin(VARIABLE1, Key1, VARIABLE2, Key1, "Append", JoinKind.Inner)
in
    Source

Вы можете использовать параметры для Key1 и Key2. Функция предложит вам выбрать таблицы.

Вы можете вызвать его из любого другого запроса с помощью:

Function.Invoke(Merge,{Table1,Table2})

Замените Merge на то, что вы назвали первым запросом выше, и замените Table1 и Table2. с вашими целевыми таблицами.

Если вы думаете об этом, я не смог понять, как передавать таблицы из параметров. Когда вы это сделаете, введенное вами значение распознается как текст - например, «Таблица» или Таблица », поэтому оно не будет работать. Я не смог найти никакой информации о том, как передать табличное значение, например, Table, в переменную. Во всяком случае, я надеюсь, что это поможет хоть немного.

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