3

Я работал над фиктивным портфелем акций в Excel, и я искал способы автоматического обновления данных, например. цена акций и соотношение P/E.

Я пытался использовать веб-запрос к MSN Money, но он просто отображает всю котировку акций по нескольким ячейкам, я хочу, чтобы данные обновлялись только в отдельных ячейках. Единственное решение для веб-запросов, о котором я могу подумать, это если бы кто-то размещал веб-сайт, где каждое значение в биржевой котировке было сохранено в другом HTML-файле. Затем я мог бы отправить WebQuery в этот файл для каждой ячейки, для которой требуется это значение. Тем не менее, ни один сайт не предлагает это.

Итак, по сути, есть ли какой-нибудь инструмент в Excel 2011 Mac, который позволил бы мне извлекать отдельные значения из котировки акций и назначать их одной ячейке?

3 ответа3

3

Для Office 2011 на Mac создайте файл (например, GoogleQuote) в каталоге /Applications /Microsoft Office 2011 /Office /Queries со следующим содержимым:

WEB
1
http://download.finance.yahoo.com/d/quotes.csv?s=goog&f=l1

Затем, аналогично инструкциям выше:

  1. Перейдите в ячейку, в которую вы хотите вставить значение кавычки
  2. Панель меню "Данные"> "Получить внешние данные"> "Запустить сохраненный запрос"
  3. Выберите файл, который вы создали выше (например, "GoogleQuote")

Вы можете проверить часть "Свойства" окна, которое всплывает для дополнительных опций (например, обновление, как только электронная таблица открыта). Затем просто нажмите "ОК".

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

2

Поскольку вы работаете на Mac, есть некоторые инструменты командной строки, которые могут сделать это простым усилием.

curl - это инструмент командной строки, который позволяет вам извлекать веб-страницы из командной строки. В терминале Mac введите «curl http://www.yahoo.com », и он вернет HTML-код для домашней страницы Yahoo.

Yahoo позволяет получить единую котировку акций через HTTP. Используя приведенный ниже пример скручивания, мы можем получить единую цену акций из Yahoo Finance. В этом случае мы получаем цену акций для Google, чей символ "goog".

curl -s "http://download.finance.yahoo.com/d/quotes.csv?s=goog&f=l1"

Yahoo позволяет легко получить несколько цитат одновременно. В приведенном ниже примере мы получаем кавычки для Google, Yahoo и General Mills с символами "goog", "yhoo" и "gis". Мы просто разделяем их запятой.

curl -s "http://download.finance.yahoo.com/d/quotes.csv?s=goog,yhoo,gis&f=l1"

Теперь, когда мы можем получить несколько биржевых котировок, нам нужно получить их в Excel. Самый простой способ, который я нашел, - это сохранить результаты скрипта curl в текстовом файле, а затем импортировать этот файл в Excel.

Чтобы заставить curl сохранять результаты в файл, мы используем опцию «-o», как в примере ниже.

curl -o quotes.txt -s "http://download.finance.yahoo.com/d/quotes.csv?s=goog,yhoo,gis&f=l1"

Это создает файл в локальном каталоге с именем "quotes.txt", который затем можно импортировать в Excel.

Примечание: вы также можете просто нажать на ссылку, и Safari загрузит файл с именем quotes.csv с ценами.

Надеюсь это поможет!

Добавление как импортировать в Excel:

После того, как у вас есть файл с ценами на акции, вы можете легко импортировать их в Excel.

В строке меню выберите «Данные» -> «Получить внешние данные» -> «Импорт текстового файла».

Выберите ваш текстовый файл с ценами на акции в нем

На следующем экране у вас есть варианты, но просто нажмите кнопку Готово

Вы должны выбрать ячейку для размещения данных, а затем он появляется!

0

Если вам не нужна обратная совместимость с Yahoo, и вы хотите просто указать цену, этот фрагмент VBA добавляет функцию Excel, которая возвращает цену символа тикера.

Это не отточенный код, но должен служить простым примером того, как использовать мощный IEX API. (Другие складские свойства также доступны.)

Используйте редактор VBA, чтобы поместить это в модуль:

Public Function tickerPrice(ticker As String)

Dim htmlCmd As String
Dim curlCmd As String
Dim shellCmd As String
Dim sResult As String

htmlCmd = "https://api.iextrading.com/1.0/stock/" & ticker & "/quote/delayedPrice"
curlCmd = "curl \""" & htmlCmd & "\"""
shellCmd = "do shell script "" " & curlCmd & " "" "

sResult = MacScript(shellCmd)

tickerPrice = Val(sResult)

End Function

Обязательно включите макросы при открытии книги.

Это было протестировано в Mac Excel 2011 в High Sierra в конце 2017 года.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .