Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/PowerQuery. Загрузка данных из интернета - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » PowerQuery. Загрузка данных из интернета (Формулы/Formulas)
PowerQuery. Загрузка данных из интернета
Viper25 Дата: Четверг, 21.07.2016, 12:56 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
На http://minfin.com.ua/currency/nbu/ курс НБУ представлен не в виде таблицы, а по конкретному дню.
Т.е. чтобы узнать курс, приходится выбирать интересующий день.
Все проще с курсом межбанка.
Делаешь через PowerQuery запрос на http://minfin.com.ua/currency/mb/archive/usd/ и получаешь готовую таблицу с датами и курсами.
Вопрос: "Как в Excel загрузить инфо с курсом НБУ в табличной форме за месяц"?
Например, используя PowerQuery.
 
Ответить
СообщениеНа http://minfin.com.ua/currency/nbu/ курс НБУ представлен не в виде таблицы, а по конкретному дню.
Т.е. чтобы узнать курс, приходится выбирать интересующий день.
Все проще с курсом межбанка.
Делаешь через PowerQuery запрос на http://minfin.com.ua/currency/mb/archive/usd/ и получаешь готовую таблицу с датами и курсами.
Вопрос: "Как в Excel загрузить инфо с курсом НБУ в табличной форме за месяц"?
Например, используя PowerQuery.

Автор - Viper25
Дата добавления - 21.07.2016 в 12:56
Nic70y Дата: Четверг, 21.07.2016, 19:54 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3473
Репутация: 722 ±
Замечаний: 0% ±

Excel 2013
вариант: рекордер и куча формул
К сообщению приложен файл: 9855773.xlsm(25Kb)


ЯД(poison) 41001841029809
+7 978 049 98 74 (мтс)
 
Ответить
Сообщениевариант: рекордер и куча формул

Автор - Nic70y
Дата добавления - 21.07.2016 в 19:54
SLAVICK Дата: Четверг, 21.07.2016, 23:18 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 1834
Репутация: 613 ±
Замечаний: 0% ±

2007,2010,2013,2016
а я юдф-ку пользую:
[vba]
Код
Function курс(Optional CurrencyName As String = "usd", Optional ByVal RateDate As Date) As Double
'xml v6
    Dim n&, s, myRequest As Object, D As Double
    On Error Resume Next
    If CurrencyName = "" Then CurrencyName = "usd"
    If RateDate = 0 Then RateDate = Date
    If Len(CurrencyName) <> 3 Then Exit Function Else CurrencyName = UCase(CurrencyName)
    Set myRequest = New XMLHTTP60
     myRequest.Open "GET", "http://tables.finance.ua/ru/currency/official/~/1/" & Format(RateDate, "YYYY\/MM\/DD"), False
        myRequest.send
       s = myRequest.responseText
'       Debug.Print s
       n = InStr(1, s, "{""" & CurrencyName & """:")
       If n = 0 Then Exit Function
       s = Split(s, "{""" & CurrencyName & """:", 2)(1)
       s = Split(s, "}")(0)
       D = Val(s)
       курс = D
End Function
[/vba]
только она не с минфина берет данные.
В приложении пример на этот месяц - дальше можно просто тянуть формулу вниз
еще тут была похожая тема
К сообщению приложен файл: kurs.xlsm(17Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщениеа я юдф-ку пользую:
[vba]
Код
Function курс(Optional CurrencyName As String = "usd", Optional ByVal RateDate As Date) As Double
'xml v6
    Dim n&, s, myRequest As Object, D As Double
    On Error Resume Next
    If CurrencyName = "" Then CurrencyName = "usd"
    If RateDate = 0 Then RateDate = Date
    If Len(CurrencyName) <> 3 Then Exit Function Else CurrencyName = UCase(CurrencyName)
    Set myRequest = New XMLHTTP60
     myRequest.Open "GET", "http://tables.finance.ua/ru/currency/official/~/1/" & Format(RateDate, "YYYY\/MM\/DD"), False
        myRequest.send
       s = myRequest.responseText
'       Debug.Print s
       n = InStr(1, s, "{""" & CurrencyName & """:")
       If n = 0 Then Exit Function
       s = Split(s, "{""" & CurrencyName & """:", 2)(1)
       s = Split(s, "}")(0)
       D = Val(s)
       курс = D
End Function
[/vba]
только она не с минфина берет данные.
В приложении пример на этот месяц - дальше можно просто тянуть формулу вниз
еще тут была похожая тема

Автор - SLAVICK
Дата добавления - 21.07.2016 в 23:18
krosav4ig Дата: Пятница, 22.07.2016, 03:55 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1338
Репутация: 533 ±
Замечаний: 0% ±

Excel 2007, 2013
Например, используя PowerQuery.

Цитата Текст запроса PQ
let
aa = Web.Page(Web.Contents("http://minfin.com.ua/currency/nbu/"&DateTime.ToText(Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content]{0}[Column1],"yyyy-MM-dd")&"/")),
bb = Table.RemoveRowsWithErrors(Table.AddColumn(aa, "Custom", each [Data][Дата]), {"Custom"}),
cc = Table.AddColumn(Table.RemoveColumns(bb,{"Custom"}), "Custom", each Table.ColumnNames([Data])){0}[Custom],
dd = Table.SelectColumns(Table.ExpandTableColumn(bb, "Data", cc),cc),
ee = Table.ReplaceValue(Table.ReplaceValue(dd,".",Text.Range(Text.From(1/2),1,1),Replacer.ReplaceText,cc),"+ ","+",Replacer.ReplaceText,cc),
ff = List.Range(cc,1,1){0},
gg = Table.RenameColumns(Table.TransformColumns(Table.SplitColumn(ee,ff,Splitter.SplitTextByDelimiter("#(lf)"),{ff,"Динамика"}),{},Text.Trim),{{ff, "Курс НБУ"}}),
hh = Table.TransformColumnTypes(gg,{{"Курс НБУ", type number}, {"Динамика", type number}, {"За неделю", type number}, {"Дата", type date}, {"Обновляется", type text}, {"КУРС К ГРИВНЕ", type text}})
in
hh
К сообщению приложен файл: PQ.xlsx(68Kb)


(_)Õvõ(_)

Сообщение отредактировал krosav4ig - Пятница, 22.07.2016, 19:16
 
Ответить
Сообщение
Например, используя PowerQuery.

Цитата Текст запроса PQ
let
aa = Web.Page(Web.Contents("http://minfin.com.ua/currency/nbu/"&DateTime.ToText(Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content]{0}[Column1],"yyyy-MM-dd")&"/")),
bb = Table.RemoveRowsWithErrors(Table.AddColumn(aa, "Custom", each [Data][Дата]), {"Custom"}),
cc = Table.AddColumn(Table.RemoveColumns(bb,{"Custom"}), "Custom", each Table.ColumnNames([Data])){0}[Custom],
dd = Table.SelectColumns(Table.ExpandTableColumn(bb, "Data", cc),cc),
ee = Table.ReplaceValue(Table.ReplaceValue(dd,".",Text.Range(Text.From(1/2),1,1),Replacer.ReplaceText,cc),"+ ","+",Replacer.ReplaceText,cc),
ff = List.Range(cc,1,1){0},
gg = Table.RenameColumns(Table.TransformColumns(Table.SplitColumn(ee,ff,Splitter.SplitTextByDelimiter("#(lf)"),{ff,"Динамика"}),{},Text.Trim),{{ff, "Курс НБУ"}}),
hh = Table.TransformColumnTypes(gg,{{"Курс НБУ", type number}, {"Динамика", type number}, {"За неделю", type number}, {"Дата", type date}, {"Обновляется", type text}, {"КУРС К ГРИВНЕ", type text}})
in
hh

Автор - krosav4ig
Дата добавления - 22.07.2016 в 03:55
Viper25 Дата: Пятница, 22.07.2016, 12:32 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
krosav4ig, к сожалению, не могу разобраться.
Как Ваш файлик использовать?
 
Ответить
Сообщениеkrosav4ig, к сожалению, не могу разобраться.
Как Ваш файлик использовать?

Автор - Viper25
Дата добавления - 22.07.2016 в 12:32
krosav4ig Дата: Пятница, 22.07.2016, 20:19 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1338
Репутация: 533 ±
Замечаний: 0% ±

Excel 2007, 2013
Упс, заменил файл
добавил в нем еще 1 запрос вот от сюда
Цитата Текст запроса
let
FDate=(date) => DateTime.ToText(date,"yyyy-MM-dd"),
tbl = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{0},
aa = Web.Page(Web.Contents("http://kurs.com.ua/arhiv/tablicy/"&tbl[Column1]&"/"&tbl[Column2]&"/"&FDate(tbl[Column3])&"/"&FDate(tbl[Column4])&"/nbu")),
bb = Table.ExpandTableColumn(Table.SelectRows(aa, each ([ClassName] = "archiveTable")), "Data",{"Дата", "Курс"}),
cc = Table.ReplaceValue(Table.SplitColumn(bb,"Дата",Splitter.SplitTextByDelimiter(", ", QuoteStyle.None)),".",",",Replacer.ReplaceText,{"Курс"}),
dd = Table.TransformColumnTypes(Table.RenameColumns(Table.SelectColumns(cc,{"Дата.2", "Курс"}),{{"Дата.2", "Дата"}}),{{"Дата", type date}, {"Курс", type number}})
in
dd

данные для запросов берутся из таблиц (закрасил желтым)


(_)Õvõ(_)
 
Ответить
СообщениеУпс, заменил файл
добавил в нем еще 1 запрос вот от сюда
Цитата Текст запроса
let
FDate=(date) => DateTime.ToText(date,"yyyy-MM-dd"),
tbl = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content]{0},
aa = Web.Page(Web.Contents("http://kurs.com.ua/arhiv/tablicy/"&tbl[Column1]&"/"&tbl[Column2]&"/"&FDate(tbl[Column3])&"/"&FDate(tbl[Column4])&"/nbu")),
bb = Table.ExpandTableColumn(Table.SelectRows(aa, each ([ClassName] = "archiveTable")), "Data",{"Дата", "Курс"}),
cc = Table.ReplaceValue(Table.SplitColumn(bb,"Дата",Splitter.SplitTextByDelimiter(", ", QuoteStyle.None)),".",",",Replacer.ReplaceText,{"Курс"}),
dd = Table.TransformColumnTypes(Table.RenameColumns(Table.SelectColumns(cc,{"Дата.2", "Курс"}),{{"Дата.2", "Дата"}}),{{"Дата", type date}, {"Курс", type number}})
in
dd

данные для запросов берутся из таблиц (закрасил желтым)

Автор - krosav4ig
Дата добавления - 22.07.2016 в 20:19
Viper25 Дата: Четверг, 28.07.2016, 17:28 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация: 4 ±
Замечаний: 0% ±

Excel 2007
добавил в нем еще 1 запрос вот от сюда

По этому сайту сделал табличку с курсом НБУ для трех валют.
К сообщению приложен файл: 2489509.xlsx(57Kb)
 
Ответить
Сообщение
добавил в нем еще 1 запрос вот от сюда

По этому сайту сделал табличку с курсом НБУ для трех валют.

Автор - Viper25
Дата добавления - 28.07.2016 в 17:28
Мир MS Excel » Вопросы и решения » Вопросы по Excel » PowerQuery. Загрузка данных из интернета (Формулы/Formulas)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!