Size: a a a

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

2020 March 26

ЖА

Жасурбек Абдурайимов... in Чат | Google Таблицы и скрипты
скину сейчас
источник

ЖА

Жасурбек Абдурайимов... in Чат | Google Таблицы и скрипты
Просто на вашу надо доделать и всё
источник

ЖА

Жасурбек Абдурайимов... in Чат | Google Таблицы и скрипты
var ss = SpreadsheetApp.getActive();
var data = ss.getDataRange().getValues();


function onEdit(e) {
//e.range.setNote(1)
}

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
function onOpen(e) {
 SpreadsheetApp.getUi()
     .createMenu('Проверить Дубликат')
     .addItem('Проверить', 'main')
     //.addSeparator()
     //.addSubMenu(SpreadsheetApp.getUi().createMenu('My sub-menu')
      //   .addItem('One sub-menu item', 'mySecondFunction')
      //   .addItem('Another sub-menu item', 'myThirdFunction'))
     .addToUi();
}


function readData() {
 var column = 2;
 var lastRow = sheet.getLastRow();
 var columnRange = sheet.getRange(1, column, lastRow);
 var rangeArray = columnRange.getValues();
 rangeArray = [].concat.apply([], rangeArray);
 //Logger.log(rangeArray);
 return rangeArray;
}


function findDuplicates(data) {
 var sortedData = data.slice().sort();
 var duplicates = [];
 for (var i = 0; i < sortedData.length - 1; i++) {
   if (sortedData[i + 1] == sortedData[i]) {
     duplicates.push(sortedData[i]);
   }
 }
 //Logger.log("Duplicates: " + duplicates);
 return duplicates;
}


function getIndexes(data, duplicates) {
 var column = 2;
 var indexes = [];
 i = -1;

 for (var n = 0; n < duplicates.length; n++) {
   while ((i = data.indexOf(duplicates[n], i + 1)) != -1) {
     indexes.push(i);
   }
 }
 //Logger.log("Indexes: " + indexes);
 for (n = 0; n < indexes.length; n++) {
   sheet.getRange(indexes[n] + 1, column).setBackground("red");
 }
}


function main() {
 var data = readData();
 var duplicates = findDuplicates(data);
 getIndexes(data, duplicates);
}
источник

ЖА

Жасурбек Абдурайимов... in Чат | Google Таблицы и скрипты
источник

A

Admin in Чат | Google Таблицы и скрипты
Доступ закрыт
источник

ЖА

Жасурбек Абдурайимов... in Чат | Google Таблицы и скрипты
щас извините
источник

ЖА

Жасурбек Абдурайимов... in Чат | Google Таблицы и скрипты
всё исправил
источник

v

volond in Чат | Google Таблицы и скрипты
где кнопочка?
источник

ЖА

Жасурбек Абдурайимов... in Чат | Google Таблицы и скрипты
Ну с перва вам надо скрипт в себе закрепите и с вашего почты резрешите скрипту
источник

v

volond in Чат | Google Таблицы и скрипты
Жасурбек Абдурайимов
var ss = SpreadsheetApp.getActive();
var data = ss.getDataRange().getValues();


function onEdit(e) {
//e.range.setNote(1)
}

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
function onOpen(e) {
 SpreadsheetApp.getUi()
     .createMenu('Проверить Дубликат')
     .addItem('Проверить', 'main')
     //.addSeparator()
     //.addSubMenu(SpreadsheetApp.getUi().createMenu('My sub-menu')
      //   .addItem('One sub-menu item', 'mySecondFunction')
      //   .addItem('Another sub-menu item', 'myThirdFunction'))
     .addToUi();
}


function readData() {
 var column = 2;
 var lastRow = sheet.getLastRow();
 var columnRange = sheet.getRange(1, column, lastRow);
 var rangeArray = columnRange.getValues();
 rangeArray = [].concat.apply([], rangeArray);
 //Logger.log(rangeArray);
 return rangeArray;
}


function findDuplicates(data) {
 var sortedData = data.slice().sort();
 var duplicates = [];
 for (var i = 0; i < sortedData.length - 1; i++) {
   if (sortedData[i + 1] == sortedData[i]) {
     duplicates.push(sortedData[i]);
   }
 }
 //Logger.log("Duplicates: " + duplicates);
 return duplicates;
}


function getIndexes(data, duplicates) {
 var column = 2;
 var indexes = [];
 i = -1;

 for (var n = 0; n < duplicates.length; n++) {
   while ((i = data.indexOf(duplicates[n], i + 1)) != -1) {
     indexes.push(i);
   }
 }
 //Logger.log("Indexes: " + indexes);
 for (n = 0; n < indexes.length; n++) {
   sheet.getRange(indexes[n] + 1, column).setBackground("red");
 }
}


function main() {
 var data = readData();
 var duplicates = findDuplicates(data);
 getIndexes(data, duplicates);
}
+
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Mike
По какому принципу я делал:
1. Человек заполняет свою таблицу и я определенный диапазон ячеек импортирую в отдельную единую таблицу.
2. Но когда людей много, гугл таблицы начинают тормозить. и я что бы разгрузить нагрузку на документ начинаю разбивать сбор данных по листам.
3. В итоговом листе я сделал объединение со всех листов в один.
4. В конечном листе я сделал объединение всех данных в один столбец. Для удобства поиска по столбцу.
https://docs.google.com/spreadsheets/d/1KvX05AIpcVGBnI_jCpqbqMunEz2hd5MnyfiPOg9kmL4/edit#gid=842176132
5. Получается LIst1 и столбец A является общей базой,собранной воедино.
И тут у меня возникли вопросы. Как мне сделать правильную проверку с этой базой.
Майк, привет, я советую использовать скрипт для сбора данных из разных Таблиц, так вы сможете переложить всю работу с тормозящего IMPORTRANGE на плечи скрипта
источник

v

volond in Чат | Google Таблицы и скрипты
Но пару замечаний и предложений
Если исправить дубликаты то окраска не очищается
Возможно стоит  одинаковые дубликаты окрашивать одинаково выбирая цвет RANDOMно
источник

M

Mike in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Майк, привет, я советую использовать скрипт для сбора данных из разных Таблиц, так вы сможете переложить всю работу с тормозящего IMPORTRANGE на плечи скрипта
О! это мне и надо. А как это сделалть?
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Mike
По какому принципу я делал:
1. Человек заполняет свою таблицу и я определенный диапазон ячеек импортирую в отдельную единую таблицу.
2. Но когда людей много, гугл таблицы начинают тормозить. и я что бы разгрузить нагрузку на документ начинаю разбивать сбор данных по листам.
3. В итоговом листе я сделал объединение со всех листов в один.
4. В конечном листе я сделал объединение всех данных в один столбец. Для удобства поиска по столбцу.
https://docs.google.com/spreadsheets/d/1KvX05AIpcVGBnI_jCpqbqMunEz2hd5MnyfiPOg9kmL4/edit#gid=842176132
5. Получается LIst1 и столбец A является общей базой,собранной воедино.
И тут у меня возникли вопросы. Как мне сделать правильную проверку с этой базой.
Вот этот скрипт, он поможет собирать много таблиц по нажатию на кнопку / по расписанию https://t.me/google_sheets/461
Telegram
Google Таблицы
Пока что наш лучший скрипт для сбора. С интерфейсом для ввода.

Друзья, если вам нужно регулярно собирать десятки тысяч строк из Таблиц, укладываясь в 6 минут (лимит времени работы одного скрипта) — вам сюда.

Просто скопируйте Таблицу себе и укажите в диапазоне «A2:C7» ссылки на Таблицы, листы и номера столбцов, которые нужно скопировать.

После запука скрипт в цикле пробежится по Таблицам, соберёт данные в массив и вставит их начиная с десятой строки.

Самое главное — вы можете поставить скрипт на регулярное выполнение и собирать данные каждую ночь, раз в два часа, etc. Для этого создайте триггер: нужно открыть редактор скриптов, меню изменить > триггеры текущего проекта, добавить триггер и поставить функцию get_google_sheets на нужную периодичность выполнения.

После этого скрипт сможет собирать тысяч строк из указанных Таблиц, даже если ваш компьютер в это время будет выключен. 🚀😈

>> Таблица со скриптом

Будут вопросы, пишите в наш чат: @google_spreadsheets_chat
источник

C

Combot in Чат | Google Таблицы и скрипты
Ссылки (кликабельны):
1. Правила
2. Оглавление канала
3. Заказ
4. Реклама

Команды бота (их нужно вводить в чат):
1. Команды
2. Донат
3. Памятки
4. + (знак плюса) или "спасибо" в ответ на сообщение — увеличивает репутацию
источник

M

Mike in Чат | Google Таблицы и скрипты
volond
Но пару замечаний и предложений
Если исправить дубликаты то окраска не очищается
Возможно стоит  одинаковые дубликаты окрашивать одинаково выбирая цвет RANDOMно
Дубли в итоговой таблице подсветка нужна для наглядности. Мне нужно что бы дубли подсвечивалсиь в исходном файле исполнителя. Но получается цикличность
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Сейчас покажу пример на двух столбцах, пример того, как это может собираться
источник

EN

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

M

Mike in Чат | Google Таблицы и скрипты
Смотрите проблема в том, что если я добавляю данные в таблицу А, то они попадают в таблицу "база". И потом по базе идёт проверка на дубликаты с таблицей А. И получается что дубликат сам на себя
источник

EN

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