Size: a a a

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

2018 August 06

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Это если с двойными буквами вроде SH = Щ не заморачиваться.
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Daria Dokukina
По типу АА3482ВН (буквенные обозначения записаны латиницей), а нужно то же самое только кириллицей
Даша, как дела? Это решает задачу?
источник

DD

Daria Dokukina in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Даша, как дела? Это решает задачу?
Спасибо за подсказку, но ещё не пробовала, не за компом сейчас. Попробую и отпишусь😉
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Daria Dokukina
Спасибо за подсказку, но ещё не пробовала, не за компом сейчас. Попробую и отпишусь😉
🤘👌
источник
2018 August 07

M

Mike in Чат | Google Таблицы и скрипты
Eugeny Namokonov
function test(){
 var result = GetMoexNnn("RU000A0JPLU8")
 Logger.log(result)  
}


function GetMoexNnn(ISIN){
 var JSONUrl = 'https://iss.moex.com/iss/engines/stock/markets/bonds/boards/EQOB/securities.json?iss.meta=off&iss.only=securities&securities.columns=SECID';
 var response = UrlFetchApp.fetch(JSONUrl);
 var data = JSON.parse(response.getContentText());
 var dd = data.securities.data
 
 for(x=0; x<dd.length; x++){
   if(dd[x][0]==ISIN){
     var number = x
     break
     }
 }
return number
}
Спасибо!
источник

M

Mike in Чат | Google Таблицы и скрипты
Eugeny Namokonov
еще можно так, через while

function test(){
 var result = GetMoexNnn("RU000A0JPLU8")
 Logger.log(result)  
}


function GetMoexNnn(ISIN){
 var JSONUrl = 'https://iss.moex.com/iss/engines/stock/markets/bonds/boards/EQOB/securities.json?iss.meta=off&iss.only=securities&securities.columns=SECID';
 var response = UrlFetchApp.fetch(JSONUrl);
 var data = JSON.parse(response.getContentText());
 var dd = data.securities.data
 
 var i = 0
 while (i < dd.length && dd[i][0] !== ISIN ) {
 i++;
 }
 
return i
}
Оба варианта работают!
источник

M

Mike in Чат | Google Таблицы и скрипты
Чтобы парсить сайты с котировками уже почти 300 строчек кода получилось только разных функций 😱
источник

M

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

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
300 строчек кода - фигня, был недавно в одной компании и своими глазами видел сравнительно простой скрипт, который местный умелец растянул на 1500 строк. Видимо писал его несколько месяцев, получая ЗП за каждый.
источник

M

Mike in Чат | Google Таблицы и скрипты
Eugeny Namokonov
300 строчек кода - фигня, был недавно в одной компании и своими глазами видел сравнительно простой скрипт, который местный умелец растянул на 1500 строк. Видимо писал его несколько месяцев, получая ЗП за каждый.
Наверняка 😂
источник

M

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

M

Mike in Чат | Google Таблицы и скрипты
Прошу ещё подсказать по заполнению столбцов значениями в зависимости от функций:

function GetQuotes() {
   var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()

   //повторяем от 1й строки до последней заполненной в столбце 1 (А):

   //Если ячейка в 19 столбце (S) этой строки содержит значение NYSEArca, то
   // заполняем ячейеу в столбце 3 (C) значениями функции GetStockUSA(ISIN,1), 
где ISIN берется из столбца 2 (B)
   // заполняем столбец 9 (I) значениями функции GetStockUSA(ISIN,2), 
где ISIN берется из столбца 2 (B)

   //Если 19 столбец (S) содержит значение MOEX, то
   // заполняем столбец 3 (C) значениями функции 
GetBondMoex(ISIN,1,purchase_date), где ISIN берется из столбца 2 (B), а 
purchase_date берется из столбца 18 (R)

   //for (var col=0; col<formulas[0].length; col++) {
   //}

   var now = new Date();
   now1 = dateFormat(now, "isoDate");
   now2 = dateFormat(now, "isoTime");

spreadsheet.getSheetByName("List1").getRange(spreadsheet.getSheetByName("List1").getLastRow()+0, 
1, 1, 1).setValue("Котировки обновлены  " + now1 +" в "+ now2 )
}
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
@mike59

function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
var sheet = spreadsheet.getActiveSheet()

//одна ячейка
var data1 = sheet.getRange("a1").getValue()

//диапазон
var data = sheet.getRange("a1:b10").getValues()

//чтобы обратиться к a1 во взятом диапазоне
data[0][0]
//чтобы обратиться к a2
data[1][0]
//чтобы обратиться к b2
data[1][1]
//и т.д.

//[1][1] - запись означает, что мы берем значение из второй строки и второго столбца массива,
//[0][0] - первое (верхнее-левое), то есть первая строка и первый столбец массива
//[3][2] - 4 строка и 3 столбец, в диапазоне data этого значения нет, там всего 2 столбца (a1:b10)
}
источник

M

Mike in Чат | Google Таблицы и скрипты
Спасибо за разъяснение, буду пробовать
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Daria Dokukina
По типу АА3482ВН (буквенные обозначения записаны латиницей), а нужно то же самое только кириллицей
Даша, привет! Ну что, как решили задачу?

Удалос?
источник

ON

Oleg Naumov in Чат | Google Таблицы и скрипты
Как же убого, что  js значения начинаются с 0, а в формулах с 1
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Oleg Naumov
Как же убого, что  js значения начинаются с 0, а в формулах с 1
Угу. Ну тут только запомнить и привыкнуть.
источник

K

Karen in Чат | Google Таблицы и скрипты
мб есть какое то логическое объяснение этому?
источник

ON

Oleg Naumov in Чат | Google Таблицы и скрипты
Юзеры экселя не программисты, вот и все. В большинстве языков тоже с 0
источник

ON

Oleg Naumov in Чат | Google Таблицы и скрипты
Сейчас разрываюсь между романтическим влечением к изучению питона, практическим SQL и VBA, и приятным субботним js

Как все успеть-то
источник