Size: a a a

Чат | Google Таблицы и скрипты

2018 August 08

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Да, ссылаясь на первый лист.
источник

ВК

Владимир Каширин... in Чат | Google Таблицы и скрипты
а понял
источник

ВК

Владимир Каширин... in Чат | Google Таблицы и скрипты
я кстати, попробовал скопировать формулу в ексель и тот чот давай ругаться..
источник

ВК

Владимир Каширин... in Чат | Google Таблицы и скрипты
я так понял операторы в Таблицах гораздо современее..если я правильно выражаюсь
источник

ВК

Владимир Каширин... in Чат | Google Таблицы и скрипты
н-р split для него не существует, как говорит поиск гугл, а Таблицы это умеют одним словом.
точнее существует, но через какой то доп.текст.
наткнулся вот https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=13744
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Владимир Каширин
я так понял операторы в Таблицах гораздо современее..если я правильно выражаюсь
Да, Таблицы позволяют легк оработать с массивами
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Excel тоже позволяет, но не так легко
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
https://habr.com/post/331360/ почитайте наш пост про функции, которые есть в Таблицах и которых нет в Excel
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
вам все сразу станет понятно, там обзор
источник

ВК

Владимир Каширин... in Чат | Google Таблицы и скрипты
опа. зашел, уже тарифы появились. а тем кто пользовался до тарифов - подарили Ультимейт :)

но я могу связаться с ребятами, постоянно с ними на связи, могут сделать какое нибудь выгодное предложение для вашего канала. нужно ?
источник

ВК

Владимир Каширин... in Чат | Google Таблицы и скрипты
Владимир Каширин
опа. зашел, уже тарифы появились. а тем кто пользовался до тарифов - подарили Ультимейт :)

но я могу связаться с ребятами, постоянно с ними на связи, могут сделать какое нибудь выгодное предложение для вашего канала. нужно ?
спасибо, посмотрю.
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Владимир Каширин
опа. зашел, уже тарифы появились. а тем кто пользовался до тарифов - подарили Ультимейт :)

но я могу связаться с ребятами, постоянно с ними на связи, могут сделать какое нибудь выгодное предложение для вашего канала. нужно ?
Пока нет.
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Владимир Каширин
куда я могу перевести вам donate 👍
https://money.yandex.ru/to/41001891748860 если Украина или РБ, то можно через ЯД
источник

M

Mike in Чат | Google Таблицы и скрипты
Eugeny Namokonov
О, вот эта запись, наверное, будет проще

function MIKE(){
 var arr = ["adas1", "аваsdd", 23]
 var regExp2 = new RegExp("[0-9+]");
 
 for(x=0; x<arr.length; x++){
   var rate2 = regExp2.exec(arr[x]);
   !rate2 ? rate2=0: rate2
   Logger.log(rate2)
 }
}
Некоторая проблема: мне надо получить число интересующего показателя с сайта целиком, например 9.61. Но если показатель отсутствует, то на сайте стоит прочерк - то есть его просто нет.
Если пишу
var regExp2 = new RegExp("((\\d+|\\d{1,3}(?:[.]\\d{5})).\\d+)");
    var rate2 = regExp2.exec(rate2)[0];

Он парсит число целиком, но если в графе на сайте прочерк, то возвращается ошибка.

При использовании предложенного скрипта он не выдает ошибку, но распарсивает число на отдельные составляющие, у меня изначально нет массива, а только текстовая строка:
источник

M

Mike in Чат | Google Таблицы и скрипты
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Mike
Некоторая проблема: мне надо получить число интересующего показателя с сайта целиком, например 9.61. Но если показатель отсутствует, то на сайте стоит прочерк - то есть его просто нет.
Если пишу
var regExp2 = new RegExp("((\\d+|\\d{1,3}(?:[.]\\d{5})).\\d+)");
    var rate2 = regExp2.exec(rate2)[0];

Он парсит число целиком, но если в графе на сайте прочерк, то возвращается ошибка.

При использовании предложенного скрипта он не выдает ошибку, но распарсивает число на отдельные составляющие, у меня изначально нет массива, а только текстовая строка:
Предложенный утром скрипт не должен парсить число на отдельные составляющие, он должен только выдавать 0 при ошибке, всё
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Есть код целиком?
источник

M

Mike in Чат | Google Таблицы и скрипты
function test(){
   var result = GetStock("0P0000ZROQ") //TypeError: Не удается прочитать 
свойство "1" объекта null. (строка 18, файл test)
   //var result = GetStock("0P00006PUS")  //работает
   Logger.log(result)
}


function GetStock(ISIN) {
   var url = 
'http://www.morningstar.co.uk/uk/etf/snapshot/snapshot.aspx?id='+ISIN;
   var html = UrlFetchApp.fetch(url).getContentText();

var searchstring2 = '5 Years Annualised</td><td class="value number">';
   var index2 = html.search(searchstring2);
   if (index2 >= 0) {
     var pos2 = index2 + searchstring2.length
     var rate2 = html.substring(pos2, pos2 + 18);
     Logger.log(rate2)
     //var regExp2 = new RegExp("((\\d+|\\d{1,3}(?:[.]\\d{5})).\\d+)");

   var arr = rate2;
   var regExp2 = new RegExp("[0-9+]");

   for(x=0; x<arr.length; x++){
     var rate2 = regExp2.exec(arr[x]);
     !rate2 ? rate2=0: rate2
     Logger.log(rate2)
   }

     return rate2
     }
   }
источник

M

Mike in Чат | Google Таблицы и скрипты
Видимо я что то напутал 🤔
источник

M

Mike in Чат | Google Таблицы и скрипты
Mike
Вопрос про регулярные выражения - если число есть то нет проблем -
скрипт его извлекает. Но если ни одного числа не доступно - он
возвращает ошибку и не исполняется. А есть желание чтобы он возвращал ноль.
Почитал в интернете про проблему - пишут про lastIndex и флаг g - но
как-то не получилось использовать.

function test(){
  //var result = GetStock("0P0000ZROQ") //TypeError: Не удается прочитать свойство "1" объекта null. (строка 18, файл test)
  var result = GetStock("0P00006PUS")  //работает
  Logger.log(result)
}


function GetStock(ISIN) {
  var url =
'http://www.morningstar.co.uk/uk/etf/snapshot/snapshot.aspx?id='+ISIN;
  var html = UrlFetchApp.fetch(url).getContentText();

var searchstring2 = '5 Years Annualised</td><td class="value number">';
  var index2 = html.search(searchstring2);
  if (index2 >= 0) {
    var pos2 = index2 + searchstring2.length
    var rate2 = html.substring(pos2, pos2 + 18);
    Logger.log(rate2)
    var regExp2 = new RegExp("((\\d+|\\d{1,3}(?:[.]\\d{5})).\\d+)");
    var rate2 = regExp2.exec(rate2)[1];
    rate2 = +rate2; //перевод в число
    return rate2
    }
  }
Вот исходный
источник