Power Query Веб-запросы №4. JSON, Котировки Yahoo Finance 2
Вставка
- Опубліковано 25 сер 2024
- В этом уроке мы разберем еще один способ скачивания котировок с Yahoo Finance. Этот способ намного удобнее и быстрее. Здесь мы научимся обрабатывать формат JSON.
Для решения воспользуемся:
Text.From
Number.From
Date.From
DateTimeZone.LocalNow
Table.FromColumns
Table.ReplaceValue
Файлы для спонсоров Boosty: boosty.to/comr...
Файлы для спонсоров ВК: comrade...
Файлы для спонсоров UA-cam: • Post
Индивидуальное обучение: comrade-xl.ru/...
Страница урока на сайте: comrade-xl.ru/...
Файлы для спонсоров Boosty: boosty.to/comrade-xl/posts/3533c432-b2af-49c6-a5fa-3ccb59b53ff3?share=post_link
Файлы для спонсоров ВК: vk.com/comrade.excel?w=wall-185123800_201
Файлы для спонсоров UA-cam: ua-cam.com/users/postUgxVn_hoDqSLCrIf90d4AaABCQ
Индивидуальное обучение: comrade-xl.ru/pq-training/
Страница урока на сайте: comrade-xl.ru/2019/09/21/json-vexcelpowerquery/
Можно под это преобразование запилить Пользовательскую (Настраиваемую) функцию.
в Power Query: Главная > подменю "Новый запрос" > Создать источник > Другие источники > Пустой запрос. Потом открываем "Расширенный редактор" и туда вставляем код:
let
Источник = (СтолбецUnixTimeДанные as text) =>
let
// Преобразование текста в целое число
asNumber = try Number.FromText(СтолбецUnixTimeДанные) otherwise null,
// Преобразование целого числа (Unix Time) в дату и время
asDate = try #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, asNumber/1000) otherwise null
in
asDate
in
Источник
Таким образом будет создана функция. Потом выделяем столбец с Unix Time Данными > вкладка "Добавление столбца" > подменю "Общие" > Вызвать настраиваемую функцию…
А вообще хотелось бы какую-то Надстройку в Power Query, чтобы была на вкладке с командами. Может есть такая возможность? Сейчас какое-то обновление Excel приехало, появилась вкладка Надстройки... Может там есть готовое решение по конвертации Unix Time? Или какой-то вариант создания самостоятельной Надстройки для Power Query, ведь для Excel есть возможность создавать свои Надстройки.
Я здесь был
как заполнить ячейку с одним единственным значением - текущей котировкой макдональдс?
Добрый вечер, не понятно где вы взяли ссылку query1, в уроке этого нет. По возможности , расскажите
Где-то на сайте Yahoo Finance.
@@comrade_excel всё-таки это важный вопрос! странно, что Тимур ответил так неопределённо.
Тимур, добрый день. Продолжаю разбираться в Power Query. Уперся в следующую задачу: при загрузке котировок необходимо учитывать часовой пояс биржи. Т.е. в запрос, где вычисляется дата надо добавить проверку на часовой пояс. Часовой пояс предполагаю хранить в другой таблице. Помоги, пожалуйста с этим: как из другой таблицы по тикеру вытащить требуемый часовой пояс для проверки?
Посмотрите уроки про #date, #duration.
Тимур, приветствую. Спасибо за ваши уроки. Создаю свою систему управления инвестициями на фондовом рынке. Тону в море информации и
ваши уроки пришлись очень кстати. Как я понял, вы тоже интересуетесь инвестициями. Есть вопрос по загрузке котировок: как реализовать загрузку только недостающих дат с последнего обновления. Например, есть таблица по котировкам в портфеле из 20 акций недельной давности. Как реализовать обновление данных не загружая все котировки заново. Спасибо за ответ
Не могу предложить ничего простого. Чтобы не загружать все вам нужно иметь всю историю на своем компьютере, потом загружать часть новой и приклеивать к вашему файлу на компьютере.
@@comrade_excel так вот в этом и вопрос. Как приклеивать? Также актуальный вопрос как хранить котировки? Всех эмитентов на одном листе, или под каждого отдельный лист. Пока я остановился на втором варианте.
Вопрос организации данных выходит за рамки этого курса. Лично я бы предложил использовать базу данных.
Я тоже склонялся к Access. Можно через запрос PQ загрузить данные в Ассеss?
Стандартным образом нельзя. Наверное, с VBA можно.
Спасибо, как всегда все очень замечательно. Единственный вопрос: как получить изначально ссылку на любой json файл по любым котировкам?
В приложенном файле есть ссылка.
Просто нужно в нем поменять тикер на интересующий.
Кстати, на основе этого урока реализовал получение информации по дивидендам с помощью следующей ссылки query1.finance.yahoo.com/v8/finance/chart/AAPL?symbol=AAPL&period1=0&period2=9999999999&interval=1d&includePrePost=true&events=div%2Csplit
Рад вашим успехам.
может быть стоит это сделать макросами? т.к. редко нужны одни и те же данные по одной и той же акции, обычно нужно менять список котировок в зависимости от того какой тикер выбираешь
Есть урок по скачиванию при помощи модулей Python ua-cam.com/video/fK2qdCD5ZE8/v-deo.html&lc=Ugzn-a3u4vtKtkpmQ_h4AaABAg
Урок с добавлением макроса тоже будет очень скоро. Как раз планируется.
Hochiu poderjati kanal 5 euro cherez paypal. Kak?
timur-kryukov@hotmail.com