Страницы: 1
RSS
PQ. Формирование справочника курсов валют
 
Уважаемые форумчане!

С помощью PQ формирую справочник курсов валют с сайта cbr за выбранный период по выбранным валютам. Что-то наколхозил, споткнулся на 2-х моментах.
Вроде запрос работает, но в конце  сообщает, что загрузка завершилась ошибкой. Хотя таблица, вроде, на листе формируется... Но в модель данных не загружается...

Далее, по логике, мне нужно два раза нажать на "Использовать первую строку в качестве заголовков", но для полного счасть в колонке "Код валюты" на второй строке должна быть запись "Код валюты". И вот смешно, но я не могу изменить значение в этом столбце и записи на нужное.

Поможите, кому не жалко. Пример прилагаю.
 
Не уверен, это ли имелось ввиду. Но по смыслу, наверное, должно быть так:
Код
let
    Currencies = Excel.CurrentWorkbook(){[Name="Справочник_валют"]}[Content],
    Period = Excel.CurrentWorkbook(){[Name="Период"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Period,{{"Дата начальная", type date}, {"Дата конечная", type date}}),

    rrows = Table.RowCount(Currencies),

 //           surl = "http://www.cbr.ru/currency_base/dynamics.aspx?VAL_NM_RQ="&Currencies{1}[Код]&"&date_req1="&Date.ToText(#"Измененный тип"{0}[Дата начальная])&"&date_req2="&Date.ToText(#"Измененный тип"{0}[Дата конечная])&"&rt=1&mode=1",
 //  add1 = Table.AddColumn(Web.Page(Web.Contents(surl)){0}[Data], "Код валюты", each Currencies{1}[Код]),

       GetWebContent = (lr as number) as table =>
        let
              surl = "http://www.cbr.ru/currency_base/dynamics.aspx?VAL_NM_RQ="&Currencies{lr}[Код]&"&date_req1="&Date.ToText(#"Измененный тип"{0}[Дата начальная],"dd.MM.yyyy")&"&date_req2="&Date.ToText(#"Измененный тип"{0}[Дата конечная],"dd.MM.yyyy")&"&rt=1&mode=1",
              url_res = Web.Page(Web.Contents(surl)){0}[Data],
              tbl = Table.PromoteHeaders(Table.PromoteHeaders(url_res, [PromoteAllScalars=true]), [PromoteAllScalars=true]),
              add1 = Table.AddColumn(tbl, "Код валюты", each Currencies{lr}[Код]),
              add2 = Table.AddColumn(add1, "Валюта", each url_res{0}[Column1])
         in 
               add2,

    webContent = List.Transform({0..rrows-1}, each GetWebContent(_)),
    Отбор = List.Select(webContent, each Table.ColumnCount(_)=5),
    webContent2 = Table.Combine(Отбор)
in
    webContent2
постарался внести минимум изменений и более-менее внятно по шагам.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Наверное, можно так: https://docs.microsoft.com/ru-ru/powerquery-m/replacer-replacevalue
Но, по-моему, это слишком сложно.

С исполнением запроса странно: то отрабатывается, то нет.
 
Можете показать что нужно-то? Нарисуйте пример желаемого из пары-тройки строк. А то так как-то не очень удобно угадывать хотелки и что конкретно не устраивает.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо всем откликнувшимся!

Супер!
Страницы: 1
Наверх