Гугл таблицы — это очень мощный инструмент, но большинство людей его используют лишь просто как просмотрщик exel документов у себя в почте gmail или на гугл диске. Раньше я его так же использовал только для подобных целей. Однако это полноценный аналог экселя, даже возможно более функциональный и совершенно бесплатный.
Плюсов в работе с google таблицами много, вот только те немногие которые мне очень понравились:
- Возможность легко расшарить документ
- Разграничение прав
- Бесплатно
- Разграничение прав вплоть до каждой ячейки!
- Поддержка макросов
- Возможность написания собственных скриптов
- Доступно с любой платформы, хоть с древней нокии можно открыть и посмотреть документ.
Про собственные скрипты остановимся поподробнее и напишем простой скрипт для автоматической установки даты в определенные ячейки.
Задача:
Подскажите пожалуйста формулу для автоматической подстановки даты или времени в необходимую мне ячейку. к примеру. в ячейке А1 я пишу Иванов, в ячейке В1 автоматически подставляется текущая дата или время. далее пишу в ячейке А2 Петров, в ячейке В2 автоматически пишется дата текущая или время.
Как решить такую задачу в Exel можно найти кучу способов и примеров в интернете, но проблема в том что все они не работают в гугл таблицах. Не работают потому что там немного другой синтаксис скриптов. Подробнее ознакомиться с ним можно в справке самого гугла. А чтобы было проще разобраться я покажу на примере как решить эту задачку в Google таблицах.
Автоматическая подстановка даты или времени Google Таблицы
Если вкратце, то нужно создать функцию которая срабатывает в момент редактирования определенной ячейки. Для примера, предположим что нам нужно при добавлении записи в ячейку 17 автоматически подставлять текущую дату в ячейку номер 2, а так же текущее время в ячейку номер 3. Ещё немного усложним задачу и сделаем проверку, если в соседней ячейке уже есть какая-то запись, то данные не обновлять и не менять дату и время.
function onEdit(e) { var sheet = e.source.getActiveSheet(); var idCol = e.range.getColumn(); var idRow = e.range.getRow(); if ( idCol == 17 && sheet.getName() =='Страница1' ) { // тут у меня имя листа, впишите сюда своё var Value = e.range.offset(0, -13).getValues(); // Смотрим что в ячейке с лева на 12 if ( Value == "" ) { var vartoday = getDate(); var varnow = getTime(); sheet.getRange(idRow, 2).setValue( vartoday ); sheet.getRange(idRow, 3).setValue(varnow); } } } // Returns YYYYMMDD-formatted date. function getDate() { var today = new Date(); today.setDate(today.getDate()); //return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd'); return Utilities.formatDate(today, 'GMT+05:00', 'yyyy.MM.dd'); } function getTime() { var today = new Date(); today.setDate(today.getDate()); //return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd'); return Utilities.formatDate(today, 'GMT+05:00', 'HH:mm'); }
Если кому-то не понятен сей скрипт, пишите в комменты, постараюсь помочь.
Здравствуйте,подскажите пожалуйста,как можно сделать редактирование(заполнение) столбцов в таблице по датам ?тоесть есть столбец в таблице с названием «Понедельник»под ним 6 или больше ячеек и их нужно заполнять только в понедельник,возможность заполнить их во вторник или среду запретить.ну и соответственно когда наступает вторник- столбец Вторник заполняется только во вторник,возможность заполнить в понедельник или в среду отключена и т.д