Size: a a a

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

2018 August 06

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Alena Murlyan
Всем привет)  Мне необходимо написать условие - если ячейка содержит запятую, ее необходимо поменять на точку (например, "555,5" на "555.5".  Я придумала вот так:  switch (data[i][0]){
         
         case ",":
         range.offset(i,0,1,1).setValue(".");
         break;
        default: break;  Но срабатывает, если в ячейке стоит только одна запятая. Логически понимаю, что надо изменить условие в case. Подскажите, пожалуйста, как правильно 🙂 Спасибо заранее)) Вот полный скриптик, на всякий случай:                                                                             function onEdit(e) {
 
 var sheet = SpreadsheetApp.getActiveSheet();
 var range = sheet.getActiveRange();
 var data = range.getValues();

 if(range.getColumn()==1){
 for (var i=0;i < data.length;i++){
  range.offset(i,0,1,1).clearFormat();
  range.offset(i,0,1,1).setHorizontalAlignment("left");
  range.offset(i,0,1,1).setVerticalAlignment("center");
  switch (data[i][0]){
         
         case ",":
         range.offset(i,0,1,1).setValue(".");
         break;
   
   default: break;
  }
 }
 }
 };
Еще есть нюанс по коду - каждое обращение к ячейке стоит денег (времени), оптимальней брать массив, менять в нем все ячейки и вставлять этот массив обратно. То есть не вставлять каждую ячейку отдельно, а фигачить блоком.

Но для небольших объемов - ваш вариант ОК
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Разумеете? :)
источник

NK

ID:541134294 in Чат | Google Таблицы и скрипты
вопрос с точкой или запятой стоит разделить на: если это контроль ввода пользователем или это ошибка импорта , когда у нас есть столбцы с ячейками которые не правильно импортировались
источник

AM

Alena Murlyan in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Еще есть нюанс по коду - каждое обращение к ячейке стоит денег (времени), оптимальней брать массив, менять в нем все ячейки и вставлять этот массив обратно. То есть не вставлять каждую ячейку отдельно, а фигачить блоком.

Но для небольших объемов - ваш вариант ОК
разумею)) пока не получилось, но я обязательно отпишусь) объемы небольшие, после того, как сделали блок ячеек - вводится все построчно))
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Alena Murlyan
разумею)) пока не получилось, но я обязательно отпишусь) объемы небольшие, после того, как сделали блок ячеек - вводится все построчно))
range.offset(i,0,1,1).setValue(data[i][0].toString().replace(',', '.'))
источник

EN

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

AM

Alena Murlyan in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Я не пробовал, но вроде бы должно работать.
даааааа!!!!👍 Спасибище!!!!!
источник

AM

Alena Murlyan in Чат | Google Таблицы и скрипты
вы гений, Евгений!
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Alena Murlyan
даааааа!!!!👍 Спасибище!!!!!
Ураааа!
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Alena Murlyan
вы гений, Евгений!
Боюсь, это далеко не гениально )
источник

AM

Alena Murlyan in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Боюсь, это далеко не гениально )
))) спасибо еще раз!!
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Mike
Что-то нет. logger.log() у меня не работает и толком не могу понять что он возвращает.

Номер строчки определенного id он не возвращает - надо пилить скрипт
еще можно так, через 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
}
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
результат - положение в массиве, где 0 - это 1
источник

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
}
Спасибо! Буду пробовать
источник

DD

Daria Dokukina in Чат | Google Таблицы и скрипты
Нужно номерные знаки авто записанные латиницей перевести в то же самое, но кириллицей. Как можно это сделать?
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Daria Dokukina
Нужно номерные знаки авто записанные латиницей перевести в то же самое, но кириллицей. Как можно это сделать?
Нужен пример
источник

DD

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

EN

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

EN

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

EN

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