Size: a a a

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

2019 May 27

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Roman Maltsev
Разумеется, это прекрасно понимаю. Как раз ситуация такова, что словоформ не много, но поток текстовых сообщений ощутимый (вручную разбирать не хочется). И повлиять на входной поток никак нельзя (например договориться о другом формате)
Хорошо, что формат жесткий. Т.е. если слово "оплатил", фигурирует то оно всегда будет только в такой форме и только с маленькой буквы. Т.к. текст тоже где-то собирается автоматом, а не человеком.
как раз таки регистр можно учесть любой, это не проблема
источник

EN

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

EN

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

RM

Roman Maltsev in Чат | Google Таблицы и скрипты
Вот ведь также делал. И JOIN и REGEXMATCH... Но на фильтрации застрял :(
Видимо как раз FILTER -  следующее, в чём нужно мне поразбираться...
источник

RM

Roman Maltsev in Чат | Google Таблицы и скрипты
Спасибо большое! Вполне изящная формула.
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Roman Maltsev
Вот ведь также делал. И JOIN и REGEXMATCH... Но на фильтрации застрял :(
Видимо как раз FILTER -  следующее, в чём нужно мне поразбираться...
про все это писали на канале, будут опять вопросы - пост с примерами можно будет найти
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
там есть два варианта, можно через regexmatch, можно через match, regexmatch лучше, так как можно учесть любой регистр
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
еще, если совпадений может быть несколько - их стоит собрать в одну строку с помощью join, иначе вывод формулы будет мешать формуле ниже
источник

RM

Roman Maltsev in Чат | Google Таблицы и скрипты
А реально будет в ARRAYFORMULA обернуть? Чтобы таблица росла вниз и подстановки продолжали работать?
источник

EN

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

РБ

Роман Бобкин... in Чат | Google Таблицы и скрипты
Привет! Подскажите, пожалуйста, можно как-нибудь научить макрос перемещать данные в разные ячейки в зависимости от даты (или привязать к ячейке, где изменяющиеся значения от 1 до 31)?
P.S. в моем случае ячейка с датой — m4
Макрос:
function myFunction1() {
 var spreadsheet = SpreadsheetApp.getActive();
 spreadsheet.getRange('C3:G3').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('\'Лист2\'!C3:G3').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C4:G4').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('I42:M42').activate();
 spreadsheet.getRange('\'Лист2\'!C4:G4').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C5:G5').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('P42:T42').activate();
 spreadsheet.getRange('\'Лист2\'!C5:G5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C6:G6').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('W42:AA42').activate();
 spreadsheet.getRange('\'Лист2\'!C6:G6').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C7:G7').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('AD42:AH42').activate();
 spreadsheet.getRange('\'Лист2\'!C7:G7').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C8:G8').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('AK42:AO42').activate();
 spreadsheet.getRange('\'Лист2\'!C8:G8').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C9:G9').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('AR42:AV42').activate();
 spreadsheet.getRange('\'Лист2\'!C9:G9').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C10:G10').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('AY42:BC42').activate();
 spreadsheet.getRange('\'Лист2\'!C10:G10').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C11:G11').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('BF42:BJ42').activate();
 spreadsheet.getRange('\'Лист2\'!C11:G11').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C12:G12').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('BM42:BQ42').activate();
 spreadsheet.getRange('\'Лист2\'!C12:G12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};
Таблица для примера:
источник

РБ

Роман Бобкин... in Чат | Google Таблицы и скрипты
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Роман Бобкин
Привет! Подскажите, пожалуйста, можно как-нибудь научить макрос перемещать данные в разные ячейки в зависимости от даты (или привязать к ячейке, где изменяющиеся значения от 1 до 31)?
P.S. в моем случае ячейка с датой — m4
Макрос:
function myFunction1() {
 var spreadsheet = SpreadsheetApp.getActive();
 spreadsheet.getRange('C3:G3').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('\'Лист2\'!C3:G3').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C4:G4').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('I42:M42').activate();
 spreadsheet.getRange('\'Лист2\'!C4:G4').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C5:G5').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('P42:T42').activate();
 spreadsheet.getRange('\'Лист2\'!C5:G5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C6:G6').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('W42:AA42').activate();
 spreadsheet.getRange('\'Лист2\'!C6:G6').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C7:G7').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('AD42:AH42').activate();
 spreadsheet.getRange('\'Лист2\'!C7:G7').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C8:G8').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('AK42:AO42').activate();
 spreadsheet.getRange('\'Лист2\'!C8:G8').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C9:G9').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('AR42:AV42').activate();
 spreadsheet.getRange('\'Лист2\'!C9:G9').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C10:G10').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('AY42:BC42').activate();
 spreadsheet.getRange('\'Лист2\'!C10:G10').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C11:G11').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('BF42:BJ42').activate();
 spreadsheet.getRange('\'Лист2\'!C11:G11').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Лист2'), true);
 spreadsheet.getRange('C12:G12').activate();
 spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Табличка для данных'), true);
 spreadsheet.getRange('BM42:BQ42').activate();
 spreadsheet.getRange('\'Лист2\'!C12:G12').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};
Таблица для примера:
привет! зачем ты отправил этот кусок кода, считаешь, это читабельно?
источник

EN

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

РБ

Роман Бобкин... in Чат | Google Таблицы и скрипты
Eugeny Namokonov
привет! зачем ты отправил этот кусок кода, считаешь, это читабельно?
Не подумал, сори
источник

A

Admin in Чат | Google Таблицы и скрипты
Нажмите на кнопку [Google Таблицы], чтобы бот не забанил...
источник

EN

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

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
​​ARRAYFORMULA для автоматической нумерации списков.

Друзья, мы принесли вам отличную формулу, с помощью которой вы можете сделать автоматическую нумерацию списка по одному и более условиям.

За накопление (за увеличение каждого счетчика на 1) отвечает часть ROW(A:A);"<="&ROW(A:A)

1) Нумерация по одному условию (столбцу):
=ARRAYFORMULA(
COUNTIFs(A3:A9;A3:A9;ROW(A3:A9);"<="&ROW(A3:A9))
)

2) Нумерация по двум условиям (столбцам):
=ARRAYFORMULA(
COUNTIFS(D3:D8;D3:D8;E3:E8;E3:E8;ROW(A3:A8);"<="&ROW(A3:A8))
)

Таблица с примером
источник

РБ

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

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Роман Бобкин
я понял. За инфу спасибо!
вопрос-то будет?
источник