Откорректировать скрипт для Apps Script
1000 UAHИмеющийся скрипт не записывает данные в уже созданную строчку с датой и с каждым новым отчетом в телеграм, создает новую строку с датой, которая уже создана первым отчетом. Отчеты присылаются в группу телеграм, разными сотрудниками. Скрин таблицы во вложении.
Принцип работы скрипта: когда приходит сообщение в группу по отчетам, данные с него передаются в гугл таблицу; при этом скрипт определяет из сообщения в какую вкладку отправлять данные и в какой столбец. Если в ячейке в нужном столбце и в строке с уже созданной датой есть данные, то новые уже туда не должны вставляться
Нужно исправить, что бы не создавалась новая строка, если строка с датой уже создана. И данные добавлялись в строку с уже созданной датой, если ячейки пустые.
Сам скрипт:
const TOKEN = "ххххххх";
const SPREADSHEET_ID = "ххххххх";
/**
* Поиск строки с датой или создание новой
*/
function findOrCreateRow(sheet, dateStr) {
const [targetDay, targetMonth] = dateStr.split(".").map(Number);
// Берём ВСЕ значения столбца A
const lastRow = sheet.getLastRow();
if (lastRow > 0) {
const displayValues = sheet.getRange(1, 1, lastRow, 1).getDisplayValues();
for (let i = 0; i < displayValues.length; i++) {
const cellText = displayValues[i][0];
if (!cellText) continue;
const parts = cellText.split(".");
if (parts.length < 2) continue;
const day = parseInt(parts[0]);
const month = parseInt(parts[1]);
if (day === targetDay && month === targetMonth) {
Logger.log("Найдена строка: " + (i + 1));
return i + 1;
}
}
}
// Если дата не найдена — создаём новую
const currentYear = new Date().getFullYear();
const newDate = new Date(currentYear, targetMonth - 1, targetDay);
const newRow = sheet.getLastRow() + 1; // БЕРЁМ АКТУАЛЬНЫЙ lastRow
sheet.getRange(newRow, 1)
.setValue(newDate)
.setNumberFormat("dd.MM.yyyy");
SpreadsheetApp.flush();
Logger.log("Создана новая строка: " + newRow);
return newRow;
}
Приложения 1
Отзыв заказчика о сотрудничестве с Ihor Symchuk
Откорректировать скрипт для Apps ScriptВсе было с пониманием. Разобрался, вник, и сделал как должно быть. Спасибо!
Отзыв фрилансера о сотрудничестве с Андреем Вернидубом
Откорректировать скрипт для Apps ScriptСпасибо! Мне понравилось сотрудничать!
-
12691 600 0 Добрый день, написал много скриптов для Google Spreadsheet, работаю с Apps Script. Исправлю функционал. Обращайтесь!
-
1798 18 0 Добрый день, готов взяться за выполнение задания. Сделаю быстро и качественно. Буду рад сотрудничеству.
-
10123 117 0 Здравствуйте.
Есть опыт с Apps Script. Готов взяться. Пишите, обсудим.
-
2380 8 0 Здравствуйте, готов взяться за ваш проект немедленно и выполнить его быстро и качественно, обращайтесь, у меня есть опыт с appps script.
-
1052 6 0 Я понимаю задачу. В настоящее время скрипт для Apps Script создает новую строку для каждой отправки отчета, даже если дата уже существует — это приводит к дублированию. Нужно исправить логику так, чтобы при совпадении даты использовалась существующая строка, а данные записывались только в пустые столбцы, без перезаписи.
Я исправлю функцию `findOrCreateRow`, чтобы она корректно искала строку по дате, учитывая формат `dd.MM`, и не создавала дубликаты. Также обеспечу, чтобы новые данные добавлялись в те же строки, если они еще не заполнены в нужных столбцах. Важно, что текущий год должен приниматься во внимание, но дата уже указывается только как день и месяц — значит, нужно избежать ошибок при сравнении.
У меня есть опыт работы с Google Apps Script, автоматизацией процессов через Telegram-ботов, интеграцией сообщений в Google Таблицы и обработкой данных без дублирования. Я уже реализовывал подобные сценарии для команд, где несколько пользователей отправляют отчеты, а система агрегирует их в единую строку.
Исправленный скрипт будет стабильно работать, учитывая все условия: поиск существующей даты, предотвращение создания новых строк, корректное добавление данных в соответствующие столбцы без перезаписи.
Актуальные фриланс-проекты в категории Javascript и Typescript
Ищу наставника по Claude Code для запуска веб-проекта с нуля**Кратко о задаче:** Я новичок без опыта в программировании. Есть готовое ТЗ на разработку сайта (42 страницы, Next.js, PostgreSQL). Хочу реализовать его самостоятельно с помощью Claude Code - нужен специалист, который настроит среду и научит меня работать с инструментом. ---… Javascript и Typescript, Обучение ∙ 7 часов 10 минут назад ∙ 15 ставок |
Обновление дизайна на сайтеНужно обновить дизайн существующего сайта используя HTML, CSS, JS: освежить внешний вид, сделать его современным и адаптивным под мобильные устройства. Требуется добавить плавные анимации и интерактивные элементы . HTML и CSS верстка, Javascript и Typescript ∙ 1 день назад ∙ 80 ставок |
Консультация и аудит текущего проекта на Odoo 19 Community EditionИщем Odoo разработчика — соло-разработчика с опытом разработки на Odoo 19 Community Edition, в том числе с использованием Claude Code. Нам нужен специалист, который успешно реализовал проекты в Odoo и имеет практический опыт разработки с использованием Claude Code. Важно:… C и C++, Javascript и Typescript ∙ 1 день 6 часов назад ∙ 5 ставок |
Интернет-магазин одеждыНужен разработчик для интернет-магазина одежды Ищу опытного разработчика для создания полноценного интернет-магазина одежды с дроп-моделью продаж. Что нужно сделать: 6 страниц: главная, товар, корзина, оформление, аккаунт, админ панель Вход через Google аккаунт Корзина и… HTML и CSS верстка, Javascript и Typescript ∙ 3 дня 3 часа назад ∙ 99 ставок |
Full-stack разработка — Amazon PPC Dashboard (Stage 1)Нужен full-stack разработчик с опытом работы с Amazon API для реализации Stage 1 внутреннего PPC-дашборда. Проект реальный, данные живые, всё готово к старту. Прототип фронтенда (5 страниц, React + TypeScript): ЧТО УЖЕ ГОТОВО — Фронтенд-прототип на React 18 + TypeScript + Vite… Javascript и Typescript, Веб-программирование ∙ 5 дней 14 часов назад ∙ 32 ставки |