Страницы: 1
RSS
Подставить значение в скрипт Power Query
 
Здравствуйте. Подскажите пожалуйста, как вставить значение с ячейки любого листа в скрипт PQ. К примеру на листе с названием "Школа" в ячейке А2 есть текст. Как его подставить в скрипт PQ? Не удобно каждый раз открывать редактор.  
Сильно не ругайте, я нуб...
 
Здесь описано. Смотрите Вариант 2 в статье.
Вот горшок пустой, он предмет простой...
 
Если честно, то я ничего не понял) Помогите за денюжку пожалуйста, кто знает. Я дам скрипт, и покажу какие значения нужно подставлять. Тему, если это необходимо, можно перенести в раздел "Работа"
Сильно не ругайте, я нуб...
 
Создаете умную таблицу с названием Таблица1, в ней столбец с названием Тест, в первой строке вносите значение, которое нужно забрать в скрипт, в качестве параметра. Далее это значение в любой запрос можно забрать либо вот такой вот формулой:
Код
= Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content]{0}[Тест]

Либо создаете запрос к таблице как в примере и на картинках и его имя используете как параметр.
Изменено: PooHkrd - 19.03.2018 12:16:18
Вот горшок пустой, он предмет простой...
 
Цитата
Neimar написал:
К примеру на листе с названием "Школа" в ячейке А2 есть текст.
в общем случае, из текущей книги можно получить либо значения, находящиеся в таблицах, либо значения, находящиеся в именованных диапазонах. Если по каким-то причинам создание таблицы на листе нецелесообразно, можно использовать именование диапазона ячеек, и получать по имени (как описал PooHkrd, в принципе - одно и то же).
Для более подробного ответа вводных маловато. Всегда ли это ячейка А2? Можно ли ее именовать, или нужно брать из А2 из разных файлов и так далее? Масса вариантов
F1 творит чудеса
 
Вот пример с частью запроса. Весь не могу выложить. И собственно скрин, что и где менять. Нужные значения на первом листе в таблице.
Сильно не ругайте, я нуб...
 
Ваш кусок должен выглядеть так:
Код
let

    // Concatenates the Consumer Key & Consumer Secret and converts to base64

    authKey = "Basic " & Binary.ToText(Text.ToBinary(Text.From(Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{0}[значение])),0),
    url = "https://api.twitter.com/oauth2/token",
    // Uses the Twitter POST oauth2/token method to obtain a bearer token
    GetJson = Web.Contents(url,
            [
                Headers = [#"Authorization"=authKey,
                #"Content-Type"="application/x-www-form-urlencoded;charset=UTF-8"],
                Content = Text.ToBinary("grant_type=client_credentials")
            ]
        ),
    FormatAsJson = Json.Document(GetJson),

    // Gets token from the Json response

    AccessToken = FormatAsJson[access_token],
    AccessTokenHeader = "bearer " & AccessToken,

    // Uses the Twitter GET search/tweets method using the bearer token from the previous POST oauth2/token method

// Search string for user screen name:
    SearchString = Text.From(Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{1}[значение]),

// requests limit:
    Max_Requests_Count = Number.From(Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{2}[значение]),


Подправил код, добавил явное указание типов значений извлекаемых из таблицы, а то мало ли что. Так надежнее.
Изменено: PooHkrd - 19.03.2018 14:48:29
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал: Подправил код, добавил явное указание типов значений извлекаемых из таблицы, а то мало ли что. Так надежнее.
Вот так я понял) Напишите мне в лс свой кошелек WMR или номер телефона, отблагодарю)
Сильно не ругайте, я нуб...
 
Нужна еще помощь) Как с помощью этой формулы заменить в запросе все значения "1715860158475554" и "youname" ? С предыдущим скриптом нормально работает, а здесь ошибка.
Код
Text.From(Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{1}[значение])
Код
let
    Source = Fin.Graph("https://finance.com/v2.8/1715860158475554"),
    connections = Source[connections],
    feed = connections[feed],
    #"Removed Other Columns" = Table.SelectColumns(feed,{"story", "created_time", "id", "message"}),
    #"Replaced Value" = Table.ReplaceValue(#"Removed Other Columns","1715860158475554_","https://finance.com/youname/posts/",Replacer.ReplaceText,{"id"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Replaced Value",{"id", "story", "created_time", "message"}),
    #"Renamed Columns" = Table.RenameColumns(#"Reordered Columns",{{"id", "permalink_url"}})
in
    #"Renamed Columns"
Сильно не ругайте, я нуб...
 
Потому что в предыдущих примерах вы подставляли значение целиком, а здесь его нужно объединить с текстовым значением. Примерно так: "текст ссылки"&Text.From(формула)&"если нужно продолжение текста ссылки".
Щас с телефона. Не удобно в скрипт втыкать.
Как-то так:
Код
let
    Source = Fin.Graph("https://finance.com/v2.8/" & Text.From(Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{1}[значение])),
    connections = Source[connections],
    feed = connections[feed],
    #"Removed Other Columns" = Table.SelectColumns(feed,{"story", "created_time", "id", "message"}),
    #"Replaced Value" = Table.ReplaceValue(#"Removed Other Columns",Text.From(Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{1}[значение]) & "_","https://finance.com/" & Text.From(Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{2}[значение]) & "/posts/",Replacer.ReplaceText,{"id"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Replaced Value",{"id", "story", "created_time", "message"}),
    #"Renamed Columns" = Table.RenameColumns(#"Reordered Columns",{{"id", "permalink_url"}})
in
    #"Renamed Columns"

Только обратите внимание, что я в последнем случае вставил формулу ссылающуюся на третью строку из Таблицы 2, это значение в фигурных скобках {2} (третья строка т.к. нумерация начинается с нуля). Думаю что сами уже разберетесь как допилить под ваши нужды код.
Изменено: PooHkrd - 21.03.2018 09:11:36
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх