Андрей К, в (бондовом, по крайней мере) споте все по-старому (в части структуры url-ов), и все старые баги с расчетными параметрами, увы, на своих местах
Доктор Ливси, Замените в своей формуле URL на мой и поменяйте парсинг в формуле concatenate("//row[@SECID='",A2,"']/@PREVADMITTEDQUOTE" на concatenate("//row[@SECID='",A2,"']/@LAST"
И имейте ввиду, что мосбиржа выдает котировки с задержкой примерно 15 мин. для запросов без платной подписки.
Доктор Ливси, =importxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST";"//document//data//rows//row[@SECID='AFKS']/@LAST")
Изменил кавычки два штриха, теперь это — Ошибка Ссылка iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST недействительна
тупо, конечно, но вставлю свои пять копеек. у меня excel после обновы перестал адрес показывать как «A2». Вместо этого теперь красуется «R2C1», может дело в названии?
Alexide, скажите, а можно как-то автоматом выгружать данные по открытым позициям юров/физов в ексель, те, которые ещё каждые 5 минут обновляются? Что надо вообще прописать?
можно попросить код для получения котировки золота?
=IMPORTXML(«iss.moex.com/iss/engines/currency/markets/selt/securities/GLDRUB_TOM.xml», "/document/data[@id="«marketdata»"]/rows/row[@BOARDID=«CETS»]/@LAST")
Так пробовал не получается
Алексей Заказников, Подскажи, пожалуйста, код для получения курса евро и доллара.
в приведенном выше коде пробовал менять GLDRUB_TOM на USDRUB_TOM, не получается
Alexide, =ПОДСТАВИТЬ(ФИЛЬТР.XML(ВЕБСЛУЖБА(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST»);"//document//data//rows//row[@secid='C2']/@last");".";",") Не работает не подскажешь почему?
Maxim Snitko, уточню — этот скрипт только для LibreOffice (для Excel вероятно нужна поправка).
2. Скопируйте еще раз аккуратно весь текст в моей цитате выше, каждый символ.
3. Кавычки елочкой замените на обычные двойные кавычки. Без этой правки работать не будет. Это Смартлаб исказил текст.
4. Еще вероятно появится всплывающая подсказка где-то вверху LibreOffice где нужно кликнуть и разрешить загрузку скрипта с внешнего сайта (Мосбиржи).
Да что за WTF? Ежедневно вношу какие-то изменения в ссылки в Google Sheets. Начинает работать, на след день открываешь рабочий файл, — опять ошибки. Че происходит-то
Гена Петров, подскажите от чего зависит как выводится в ячейке значение? По Вашему скрипту отображается или через точку, или через запятую. Рандомно для разных эмитентов. Но дальнейшее вычисление суммы в первом случае не высчитывается — ошибку показывает, во втором — нормальный расчет.
Для таблиц Google:
=ImportXML(CONCATENATE("https://www.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities/",C5,".xml?iss.meta=off&iss.only=marketdata&securities.columns=LAST"),"/document/data/rows/row/@LAST")
где С5 — это тикер.
Для Excel:
=ФИЛЬТР.XML(ВЕБСЛУЖБА(СЦЕПИТЬ("https://www.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities/";C5;".xml?iss.meta=off&iss.only=marketdata&securities.columns=LAST"));"//document//data//rows//row/@LAST")
Дайте совет, как сделать, чтобы котировки в экселе обновлялись автоматически? Приходится нажимать F2+Enter. Параметр автоматического расчета для формул включен.
Значение в ячейке такое: =ПОДСТАВИТЬ( ФИЛЬТР.XML(ВЕБСЛУЖБА(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST»);"//document//data//rows//row[@SECID='SBER']/@LAST");".";",")
Здравствуйте у меня в exel работает эта формула для получения котировок облигаций:
=ФИЛЬТР.XML(ВЕБСЛУЖБА(СЦЕПИТЬ(«www.moex.com/iss/engines/stock/markets/bonds/boards/TQOB/securities/»;E4;".xml?iss.meta=off&iss.only=marketdata&securities.columns=LAST"));"//document//data//rows//row/@LAST") Подскажите пожалуйста формулу для получения НКД?
ВСЕ САМ РАЗОБРАЛСЯ ПОМОЩЬ НЕ НУЖНА ВОТ ФОРМУЛА НКД =ФИЛЬТР.XML(ВЕБСЛУЖБА(«www.moex.com/iss/engines/stock/markets/bonds/boards/TQOB/securities/»&E4&"/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,ACCRUEDINT");"//document//data//rows//row/@ACCRUEDINT")
Подскажите, получаю по облигациям в excel доходность (EFFECTIVEYIELD), НКД (ACCRUEDINT) из 20 облигаций в некоторых (не системно) вместо НКД, например 30,58 выдает 42256. Тоже самое с доходностью. Открываю по прописанной в excel ссылке XML, там все правильно, а в excel пятизначные числа.
morsm, здравствуйте, столкнулся с такой же проблемой по облигациям доходность нормально не выводиться как я понял если после точки меньше двух знаков то выводиться какая-то чушь, получилось разобраться?
morsm, нашел решение у одного доброго человека который свой файл выложил в общи доступ. Решение:
Файл -> Параметры -> Дополнительно -> убрать галочку с «Использовать системные разделители».
Если не поможет, то поменяйте в этом параметре точку на запятую или наоборот.
Где все-таки расположена неработающая формула? В каком табличном редакторе?
Что творится в ячейке А2?
Много, в общем, вопросов.
В A2 находится название тикера.
=importxml(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST»;"//document//data//rows//row[@SECID='C4']/@LAST")
=FILTERXML(WEBSERVICE(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST»),"//document//data//rows//row[@SECID='"&C4&"']/@LAST")
Это была формула для MS Excel.
Для Гугла так:
=IMPORTXML(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST»;"//document//data//rows//row[@SECID='"&C4&"']/@LAST")
Доктор Ливси, снова синтаксическая ошибка.
Изменил кавычки два штриха, теперь это — Ошибка Ссылка iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST недействительна
Как будто проблема настройках гугла...
у меня все работает!
=IMPORTXML(«iss.moex.com/iss/engines/currency/markets/selt/securities/GLDRUB_TOM.xml», "/document/data[@id="«marketdata»"]/rows/row[@BOARDID=«CETS»]/@LAST")
Так пробовал не получается
в приведенном выше коде пробовал менять GLDRUB_TOM на USDRUB_TOM, не получается
Вот этот код для ячейки LibreOffice Calc возвращает котировку для Сбербанка например.
! Только двойные кавычки елочкой (вокруг URL внутри( замените на обычные двойные кавычки, иначе работать не будет
Maxim Snitko, уточню — этот скрипт только для LibreOffice (для Excel вероятно нужна поправка).
2. Скопируйте еще раз аккуратно весь текст в моей цитате выше, каждый символ.
3. Кавычки елочкой замените на обычные двойные кавычки. Без этой правки работать не будет. Это Смартлаб исказил текст.
4. Еще вероятно появится всплывающая подсказка где-то вверху LibreOffice где нужно кликнуть и разрешить загрузку скрипта с внешнего сайта (Мосбиржи).
Да что за WTF? Ежедневно вношу какие-то изменения в ссылки в Google Sheets. Начинает работать, на след день открываешь рабочий файл, — опять ошибки. Че происходит-то
где С5 это Тикер.
Коллеги, перепробовал, что выше написали — не получается!
Выложите пожалуйста рабочую гугл таблицу, с рабочей формулой!
Максим Малахов, нужно ли что еще настроить в гугл таблице для получения котировок?
Вставил в ячейку, пишет Ошибка синтаксическая
Для таблиц Google:
=ImportXML(CONCATENATE("https://www.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities/",C5,".xml?iss.meta=off&iss.only=marketdata&securities.columns=LAST"),"/document/data/rows/row/@LAST")
где С5 — это тикер.
Для Excel:
=ФИЛЬТР.XML(ВЕБСЛУЖБА(СЦЕПИТЬ("https://www.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities/";C5;".xml?iss.meta=off&iss.only=marketdata&securities.columns=LAST"));"//document//data//rows//row/@LAST")
Значение в ячейке такое: =ПОДСТАВИТЬ( ФИЛЬТР.XML(ВЕБСЛУЖБА(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST»);"//document//data//rows//row[@SECID='SBER']/@LAST");".";",")
сегодня до 10-00 мск не работало, а потом заработало:
=ImportXML(CONCATENATE(«www.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities/»,C6,".xml?iss.meta=off&iss.only=marketdata&securities.columns=LAST"),"/document/data/rows/row/@LAST")
и
=importxml(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.dp=comma&iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST»,"//document//data//rows//row[@SECID='YNDX']/@LAST")
=ФИЛЬТР.XML(ВЕБСЛУЖБА(СЦЕПИТЬ(«www.moex.com/iss/engines/stock/markets/bonds/boards/TQOB/securities/»;E4;".xml?iss.meta=off&iss.only=marketdata&securities.columns=LAST"));"//document//data//rows//row/@LAST") Подскажите пожалуйста формулу для получения НКД?
Файл -> Параметры -> Дополнительно -> убрать галочку с «Использовать системные разделители».
Если не поможет, то поменяйте в этом параметре точку на запятую или наоборот.