Size: a a a

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

2020 March 18

D

Dmitriy in Чат | Google Таблицы и скрипты
Vadim_ua
Привет. Следующий вопрос: Есть колонка, в ячейках разнообразный текст, необходимо проверить на соответствия с искомым текстом и если есть полное или частичное совпадение вывести адреса(диапазоны) нужных ячеек. Важно использовать только скрипты.
Пример https://docs.google.com/spreadsheets/d/1uEwaYAOfPaR8eVxQMF3dwTzX32TF_l7FmX8FI2zguEE/edit?usp=sharing

нужно искать по совпадению слово "мир"
а вопрос-то в чём?
источник

V

Vadim_ua in Чат | Google Таблицы и скрипты
Dmitriy
а вопрос-то в чём?
как произвести поиск, по неполному значению ячейки? как вывести адреса ячеек которые содержат полное или частичное совпадание с искомым текстом.
Знаю как сделать формулами, но важно сделать скриптом
источник

D

Dmitriy in Чат | Google Таблицы и скрипты
Vadim_ua
как произвести поиск, по неполному значению ячейки? как вывести адреса ячеек которые содержат полное или частичное совпадание с искомым текстом.
Знаю как сделать формулами, но важно сделать скриптом
поиск регуляркой, вывод диапазона - "А" + индекс из цикла
источник

D

Dmitriy in Чат | Google Таблицы и скрипты
А почему так важно именно скриптом? Тестовое задание такое?)
источник

V

Vadim_ua in Чат | Google Таблицы и скрипты
Dmitriy
поиск регуляркой, вывод диапазона - "А" + индекс из цикла
пробовал не получается.
источник

V

Vadim_ua in Чат | Google Таблицы и скрипты
Dmitriy
А почему так важно именно скриптом? Тестовое задание такое?)
нет, потому что запросы будут делать одновременно несколько пользователей через телеграм бот. и если запрос прописывать в ячейки то чисто теоретически возможо что данные будут перезаписываться быстрее чем будет выводиться информация
источник

D

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

V

Vadim_ua in Чат | Google Таблицы и скрипты
Dmitriy
А что именно у тебя не получилось?
совместить поиск регуляркой по диапазону и вывод адресов.
Логика следующая:
бот получает сообщение->записываю значение сообщения в переменную->произвожу поиск по колонке-> получаю адреса-> из этих адресов формирую inline клавиатуру на значения с каждым из совпадений.
Както так=)
источник

D

Dmitriy in Чат | Google Таблицы и скрипты
Vadim_ua
совместить поиск регуляркой по диапазону и вывод адресов.
Логика следующая:
бот получает сообщение->записываю значение сообщения в переменную->произвожу поиск по колонке-> получаю адреса-> из этих адресов формирую inline клавиатуру на значения с каждым из совпадений.
Както так=)
Лови. Пользуйся. С регуляркой сам резберешься, аргументы какие нужно - вынесешь в аргументы функции.

function matchRange() {
   let sheet = SpreadsheetApp.getActive().getSheets()[0];
   let range = sheet.getRange(`A2:A${sheet.getLastRow()}`);
   values = range.getValues();
   let re = 'мир'
   let matchedRanges = [];
   values.reduce((acc, v, i) => {
       if (v[0].search(re) !== -1) {
           acc.push(`A${i}`)
       }
       return acc
   }, matchedRanges)
   Logger.log(matchedRanges)
   return matchedRanges
}
источник

РИ

Роман Игнатов... in Чат | Google Таблицы и скрипты
var array=SpreadsheetApp.getActive().getActiveSheet().getRange('A1:A').getValues().reduce(function(acc,row,index){
   if(row[0].toLowerCase().indexOf('мир')>=0){acc.push(index)}
   return acc},[])

однострочник ведь
источник

V

Vadim_ua in Чат | Google Таблицы и скрипты
Dmitriy
Лови. Пользуйся. С регуляркой сам резберешься, аргументы какие нужно - вынесешь в аргументы функции.

function matchRange() {
   let sheet = SpreadsheetApp.getActive().getSheets()[0];
   let range = sheet.getRange(`A2:A${sheet.getLastRow()}`);
   values = range.getValues();
   let re = 'мир'
   let matchedRanges = [];
   values.reduce((acc, v, i) => {
       if (v[0].search(re) !== -1) {
           acc.push(`A${i}`)
       }
       return acc
   }, matchedRanges)
   Logger.log(matchedRanges)
   return matchedRanges
}
спасибо буду пробовать=)
источник

V

Vadim_ua in Чат | Google Таблицы и скрипты
Dmitriy
Лови. Пользуйся. С регуляркой сам резберешься, аргументы какие нужно - вынесешь в аргументы функции.

function matchRange() {
   let sheet = SpreadsheetApp.getActive().getSheets()[0];
   let range = sheet.getRange(`A2:A${sheet.getLastRow()}`);
   values = range.getValues();
   let re = 'мир'
   let matchedRanges = [];
   values.reduce((acc, v, i) => {
       if (v[0].search(re) !== -1) {
           acc.push(`A${i}`)
       }
       return acc
   }, matchedRanges)
   Logger.log(matchedRanges)
   return matchedRanges
}
по примеру выводить ссылки на А2 и А3, в А3 вообще нет слова искомого. Также в А1 есть правильное значение
источник

D

Dmitriy in Чат | Google Таблицы и скрипты
Роман Игнатов
var array=SpreadsheetApp.getActive().getActiveSheet().getRange('A1:A').getValues().reduce(function(acc,row,index){
   if(row[0].toLowerCase().indexOf('мир')>=0){acc.push(index)}
   return acc},[])

однострочник ведь
Ну так совсем не гибко получается, ему же нужно будет с аргументами функцию использовать
источник

V

Vadim_ua in Чат | Google Таблицы и скрипты
Роман Игнатов
var array=SpreadsheetApp.getActive().getActiveSheet().getRange('A1:A').getValues().reduce(function(acc,row,index){
   if(row[0].toLowerCase().indexOf('мир')>=0){acc.push(index)}
   return acc},[])

однострочник ведь
Cпасибо 👍  то что нужно, все четко работает=)
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Роман Игнатов
var array=SpreadsheetApp.getActive().getActiveSheet().getRange('A1:A').getValues().reduce(function(acc,row,index){
   if(row[0].toLowerCase().indexOf('мир')>=0){acc.push(index)}
   return acc},[])

однострочник ведь
👍
источник

T

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

A

Admin in Чат | Google Таблицы и скрипты
Taxup
В ячейке данные записаны в несколько строк, скорее всего через шифт+ентер. Хочу разделить с помощью SPLIT. Какой тип разделителя использовать?
char(10)
источник

VP

Vitaliy P. in Чат | Google Таблицы и скрипты
CHAR(10)
источник

T

Taxup in Чат | Google Таблицы и скрипты
Admin
char(10)
спасибо
источник

T

Taxup in Чат | Google Таблицы и скрипты
Vitaliy P.
CHAR(10)
спасибо
источник