Виправити скрипт для Apps Script
Існуючий скрипт не записує дані в уже створений рядок з датою і з кожним новим звітом у телеграм, створює новий рядок з датою, яка вже була створена першим звітом. Звіти надсилаються в групу телеграм, різними співробітниками. Скрин таблиці у вкладенні.
Принцип роботи скрипта: коли приходить повідомлення в групу по звітах, дані з нього передаються в гугл таблицю; при цьому скрипт визначає з повідомлення, в яку вкладку відправляти дані і в який стовпець. Якщо в клітинці в потрібному стовпці і в рядку з уже створеною датою є дані, то нові вже туди не повинні вставлятися
Потрібно виправити, щоб не створювався новий рядок, якщо рядок з датою вже створений. І дані додавалися в рядок з уже створеною датою, якщо клітинки порожні.
Сам скрипт:
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Дякую! Сподобалось співпрацювати!
-
12593 600 0 Доброго дня, написав багато скриптів для Google Spreadsheet, працюю з Apps Script. Виправлю функціонал. Звертайтесь!
-
1798 18 0 Добрий день, готовий взятися за виконання завдання. Зроблю швидко та якісно.
Буду радий співпраці.
-
10123 117 0 Доброго дня.
Є досвід з Apps Script. Готовий взятися. Пишіть, обговоримо.
-
2380 8 0 Вітаю, готовий взятись за ваш проект негайно і виконати його швидко та якісно, звертайтесь, маю досвід з appps script
-
1168 7 0 Розумію завдання. Наразі скрипт для Apps Script створює новий рядок для кожної відправки звіту, навіть якщо дата вже існує — це призводить до дублювання. Потрібно виправити логіку так, щоб при збігу дати використовувався існуючий рядок, а дані записувалися тільки в порожні стовпці, без перезапису.
Я виправлю функцію `findOrCreateRow`, щоб вона коректно шукала рядок за датою, враховуючи формат `dd.MM`, і не створювала дублі. Також забезпечу, щоб нові дані додавалися в ті ж рядки, якщо вони ще не заповнені в потрібних стовпцях. Важливо, що поточний рік має братися в увагу, але дата вже вказується тільки як день і місяць — значить, потрібно уникнути помилок при порівнянні.
Маю досвід роботи з Google Apps Script, автоматизацією процесів через Telegram-ботів, інтеграцією повідомлень у Google Таблиці та обробкою даних без дублювання. Вже реалізовував подібні сценарії для команд, де кілька користувачів відправляють звіти, а система агрегує їх у єдиний рядок.
Виправлений скрипт буде стабільно працювати, враховуючи всі умови: пошук існуючої дати, запобігання створенню нових рядків, коректне додавання даних у відповідні стовпці без перезатирання.
Актуальні фриланс-проєкти в категорії Javascript та Typescript
Виправити CSS/DOM-верстку карток у Chrome extension для локалізації D&D BeyondЄ Chrome extension Manifest V3, який локалізує сайт D&D Beyond українською. Проєкт написаний на TypeScript + WXT. Розширення працює через content script: знаходить англійський текст на сторінках D&D Beyond і замінює його українським перекладом. Проблема виникла на сторінці:… HTML та CSS верстання, Javascript та Typescript ∙ 15 годин 4 хвилини тому ∙ 31 ставка |
Розробка платформи AM Mobility (автосервіс, парковка, страхування, оренда автомобілів)
259 176 UAH
Шукаємо команду або досвідченого Full Stack розробника для створення MVP платформи AM Mobility. AM Mobility — це єдина цифрова екосистема для автомобілістів, що об'єднує в одному додатку та веб-платформі: парковку; автосервіс; шиномонтаж; автомийку; оренду автомобілів;… Javascript та Typescript, Веб-програмування ∙ 1 день тому ∙ 90 ставок |
Gsap анімації
1000 UAH
Доброго дня. Треба внести правки в поточному проєкті. Потрібен фахівець, який добре працює на gsap/lenis Треба зробити анімацію карточок. Детально ТЗ тут: https://www.figma.com/design/5bLEJudN5LPpB9ZSoJa2Eb/Untitled?m=auto&t=qwyluUctL1lrMNvh-6 Треба проявити креатив та… Javascript та Typescript, Веб-програмування ∙ 1 день 5 годин тому ∙ 18 ставок |
Комерційна on-premise платформа відеозв'язку «ViM»Требуется разработати on-premise систему відеозв'язку з базовим розрахунком на 100 одночасних підключень (10 ізольованих кімнат по 10 осіб). Платформа повинна мати закладену архітектуру для майбутнього горизонтального масштабування до 1000 користувачів шляхом додавання нових… Javascript та Typescript, Веб-програмування ∙ 2 дні 1 година тому ∙ 29 ставок |
Шукаю наставника з Claude Code для запуску веб-проєкту з нуля**Коротко про завдання:** Я новачок без досвіду в програмуванні. Є готове ТЗ на розробку сайту (42 сторінки, Next.js, PostgreSQL). Хочу реалізувати його самостійно за допомогою Claude Code - потрібен спеціаліст, який налаштує середовище і навчить мене працювати з інструментом.… Javascript та Typescript, Навчання ∙ 3 дні 4 години тому ∙ 18 ставок |