dr-mart

Импорт цен акций с Мосбиржи в Google таблицы - нужная ваша помощь

Блин, с импортом данных как с программированием, можно часами мучаться, где у тебя там ошибка.
Решил воспользоваться «помощью зала».
Друзья, вот так можно импортировать в гугл таблицы котировку:
Импорт цен акций с Мосбиржи в Google таблицы - нужная ваша помощь
Выражение такое:
=IMPORTXML("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml";"//row[@SECID='DIAS']/@LAST")
Вот только импортируется вся эта вещь в непонятном формате, когда речь заходит о числах с точкой.
Если у меня в гугле стоит "," в качестве разделителя дробной части, то точку не понимает эта зараза.

Функция преобразования точки в запятую тоже не работает
=REGEXREPLACE(B2; "[.]"; ",")
Импорт цен акций с Мосбиржи в Google таблицы - нужная ваша помощь

Че делать то?

И еще вопрос:
=IMPORTXML("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml";"//row[@SECID='DIAS']/@LAST")
Можно в этот текст внутри кавычек запихнуть не тикер DIAS а ссылку на ячейку? Как?
2.4К | ★4
13 комментариев
=SUBSTITUTE(IMPORTXML(...), ".", ",")
avatar
Gordon Shumway, оооо ничосе
NoName, а 5 и ложь это что?
Тимофей Мартынов, точка или запятая в разделителе (деньги/числа) определяется в настройка windows в региональных стандартах. Excel все берет оттуда.
avatar

=IMPORTXML(«URL»,"//row[@SECID='" & A1 & "']/@LAST")
тикер в A1

avatar
=SUBSTITUTE(IMPORTXML(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml»;"//row[@SECID='"&F17&"']/@LAST");".";",")

В F17 — DIAS

avatar

Нафиг тебе командная строка? Напиши нормальную функцию

 

Google таблица — Расширения — Apps Script

 

 

Вот код (код в нормальном виде: https://codefile.io/f/mIXmTEg5NN)

 

function getAttributeValue(ticker, attribute) {  var url = «iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml»;  var response = UrlFetchApp.fetch(url);  var xml = response.getContentText();
  try {    // Парсим XML    var document = XmlService.parse(xml);    var root = document.getRootElement();       // Находим элемент <data> с id=«marketdata»    var dataElement = findDataElementById(root, 'marketdata');       if (!dataElement) {      return «Data element with id 'marketdata' not found»;    }       var rowsElement = dataElement.getChild('rows');    if (!rowsElement) {      return «Rows element not found»;    }       var rowList = rowsElement.getChildren('row');       for (var i = 0; i < rowList.length; i++) {      var row = rowList[i];      var secidAttr = row.getAttribute('SECID');           if (secidAttr && secidAttr.getValue() === ticker) {        var targetAttr = row.getAttribute(attribute);               if (targetAttr) {          var result = targetAttr.getValue().replace('.', ',');          return result;        } else {          return «Attribute not found»;        }      }    }       return «Ticker not found»;  } catch (e) {    return «Error processing XML: » + e.message;  }}
 function findDataElementById(rootElement, idValue) {  var dataElements = rootElement.getChildren('data');   for (var i = 0; i < dataElements.length; i++) {    var dataElement = dataElements[i];    var idAttribute = dataElement.getAttribute('id');       if (idAttribute && idAttribute.getValue() === idValue) {      return dataElement;    }  }   return null; // Если элемент не найден}

 

В ячейке вставляешь 

 

=getAttributeValue($B3; «LAST»)


 

Теперь можно использовать не только с тикером DIAS, но и выбирать нужный атрибут, например, LOW

 

=getAttributeValue($B3; «LOW»)

 

avatar
smart-lab.ru/blog/1045080.php решение за 5 минут
avatar
Gambler, не пашет ничего
avatar
=REGEXREPLACE(TO_TEXT(B2); "\."; ",")
avatar
Артём Баженов, спасибо огромное откуда все знаешь?
Тимофей Мартынов, сам с этой штукой боролся, когда собирал небольшие модельки в гугл таблицах %)
avatar
Очень помогли скриптом для получения котировок! Благодарю. Точку в запятую превратите через REGEXREPLACE(A1; "[.]"; ",") где A1 ячейка с котировкой с точкой в качестве разделителя.

Читайте на SMART-LAB:
Фото
14 августа раскроем финансовые итоги Хэдхантера за второй квартал и первое полугодие 2026 года
Финансовые результаты компании, ключевые цифры и инфографику опубликуем в этом канале. Подробный отчёт и презентацию разместим на нашем...
Фото
Хэдхантер входит в ТОП-5 мировых джоб-бордов по размеру выручки
Что помогает компании сохранять устойчивость и расти при любых условиях: • Рост аудитории основного продукта. Крупнейший в СНГ джоб-борд hh․ru...
Фото
✈️ Акции Аэрофлота закрыли дивидендный гэп за 18 дней
Дивиденд по итогам 2025 года составил 5,29 руб. на акцию, что дало 15,7% доходности относительно цены последней сделки 16 июля 2026 года перед...
Фото
Хэдхантер. Ситуация на рынке труда в июле. Есть признаки улучшения
Вышла статистика рынка труда за июль 2026 года (за июнь можно почитать здесь ), которую Хедхантер публикует ежемесячно, что же там...

теги блога Тимофей Мартынов

....все тэги



UPDONW
Новый дизайн