Вход Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Тренеры
Уход за животными
Автоинструкторы

Программирование в Excel — удалённая работа в Москве

Дата: 2025-08-21
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-08-21
Описание
Автоматизация формирования отчётов, анализ и работа с базами данных. Техническое задание есть. Вы описали идеальную архитектуру для сбора конфиденциальных или индивидуальных данных, где каждый участник работает только со своим файлом и не видит других. Это реализуется с помощью Google Forms и Google Apps Script (скриптов). Вот как это работает: --- Общая схема работы 1. Пользователь заполняет общую Google Форму. 2. Скрипт автоматически создает для него персональную Google Таблицу. 3. Скрипт записывает ответы пользователя и ссылку на его персональную таблицу в вашу главную таблицу. 4. Скрипт отправляет пользователю письмо со ссылкой на его личную таблицу. В итоге: · Вы в главной таблице видите все данные и все ссылки на личные файлы. · Каждый пользователь имеет доступ только к своей личной таблице и не видит ни главную таблицу, ни таблицы других людей. --- Пошаговая инструкция по реализации Это более сложный скрипт, но он решает именно вашу задачу. Шаг 1: Подготовка файлов 1. Создайте Главную таблицу (Master Sheet). · Создайте новую Google Таблицу. Это будет ваша база данных. · Создайте заголовки для столбцов, например: Timestamp, Email, Link to Personal Sheet. · Запишите ее ID из URL (длинная строка между /d/ и /edit). 2. Создайте Шаблон личной таблицы (Template Sheet). · Создайте новую Google Таблицу, оформите ее: сделайте заголовки, формулы, инструкции — все, что должен видеть пользователь. · Важно: Не заполняйте ее данными пользователей. Это просто шаблон. · Запишите ее ID. 3. Создайте Google Форму. · Создайте форму, которая будет собирать данные для доступа (как минимум, email). · В настройках формы (шестеренка) включите сбор email-адресов. · Привяжите к форме скрипт: в форме нажмите меню (три точки) -> Редактор скриптов. Шаг 2: Написание скрипта Вставьте этот код в редакторе скриптов, связанном с вашей Формой. Вам нужно будет заменить значения в `CONFIG` на свои. ```javascript // КОНФИГУРАЦИЯ - ЗАМЕНИТЕ ЭТИ ЗНАЧЕНИЯ НА СВОИ const CONFIG = { // ID главной таблицы (из URL) MASTER_SHEET_ID: 'Ваш_ID_Главной_Таблицы', // Имя листа внутри главной таблицы, куда писать данные (обычно “Лист1“) MASTER_SHEET_NAME: 'Лист1', // ID таблицы-шаблона (из URL) TEMPLATE_SHEET_ID: 'Ваш_ID_Таблицы_Шаблона', // Папка на Google Диске, куда складывать личные таблицы (необязательно). Оставьте пустым, чтобы файлы создавались в корне. TARGET_FOLDER_ID: '' }; function onFormSubmit(e) { // Получаем ответ из формы var formResponse = e.response; var itemResponses = formResponse.getItemResponses(); var respondentEmail = formResponse.getRespondentEmail(); // Получаем email из настроек формы // Если в форме были другие вопросы, вы можете получить их ответы здесь // var answer1 = itemResponses[0].getResponse(); // 1. СОЗДАЕМ КОПИЮ ШАБЛОНА ДЛЯ ПОЛЬЗОВАТЕЛЯ var personalSheet = createPersonalSheet(respondentEmail); // 2. ЗАПИСЫВАЕМ ДАННЫЕ В ГЛАВНУЮ ТАБЛИЦУ writeToMasterSheet(formResponse, respondentEmail, personalSheet.getUrl()); // 3. ОТПРАВЛЯЕМ ПРИГЛАШЕНИЕ ПОЛЬЗОВАТЕЛЮ НА ЕГО ТАБЛИЦУ sendEmailWithLink(respondentEmail, personalSheet.getUrl()); } function createPersonalSheet(userEmail) { // Открываем шаблон var template = DriveApp.getFileById(CONFIG.TEMPLATE_SHEET_ID); // Создаем имя для новой таблицы var newFileName = 'Моя персональная таблица для ' + userEmail; // Создаем копию шаблона var personalSheetFile = template.makeCopy(newFileName); // Если указана папка, перемещаем файл в нее if (CONFIG.TARGET_FOLDER_ID) { var targetFolder = DriveApp.getFolderById(CONFIG.TARGET_FOLDER_ID); personalSheetFile.moveTo(targetFolder); } // Открываем копию как Google Таблицу var personalSheet = SpreadsheetApp.openById(personalSheetFile.getId()); // Даем пользователю права на редактирование ЭТОЙ таблицы personalSheet.addEditor(userEmail); // Опционально: удаляем права у всех, кроме владельца и пользователя // var editors = personalSheet.getEditors(); // for (var i = 0; i < editors.length; i++) { // if (editors[i].getEmail() != Session.getActiveUser().getEmail()) { // personalSheet.removeEditor(editors[i]); // } // } return personalSheet; } function writeToMasterSheet(formResponse, userEmail, sheetUrl) { // Открываем главную таблицу и нужный лист var masterSheet = SpreadsheetApp.openById(CONFIG.MASTER_SHEET_ID).getSheetByName(CONFIG.MASTER_SHEET_NAME); // Формируем строку для записи: [Время, Email, Ссылка] var timestamp = formResponse.getTimestamp(); var newRow = [timestamp, userEmail, sheetUrl]; // Добавляем строку в конец таблицы masterSheet.appendRow(newRow); } function sendEmailWithLink(userEmail, sheetUrl) { var subject = 'Доступ к вашей персональной таблице'; var body = 'Здравствуйте! Ваша персональная таблица готова. ' + 'Перейдите по ссылке, чтобы начать работу: ' + sheetUrl; MailApp.sendEmail(userEmail, subject, body); } ``` Шаг 3: Настройка триггера Как и в первом примере, вы должны настроить триггер для функции onFormSubmit, чтобы она запускалась При отправке формы. --- Что получится в итоге? Действие пользователя Результат 1. Пользователь заполняет форму и указывает email. 2. Скрипт создает копию шаблона, дает права на нее пользователю, записывает данные в вашу главную таблицу и шлет email. 3. Пользователь получает письмо со ссылкой. 4. Он переходит по ссылке и видит только свою личную таблицу. Он даже не подозревает о существовании главной таблицы и таблиц других участников. 5. Вы открываете свою Главную таблицу. 6. Вы видите список всех участников, их email и прямые ссылки на их личные таблицы. У вас есть полный контроль и обзор над всем процессом. Это мощная, профессиональная и очень надежная схема для управления данными множества пользователей, полностью соответствующая вашим требованиям.
Похожие заказы
Программирование в Excel
дистанционно
договорная
Финансовые расчёты. Финансовые расчёты: финансовые показатели компании. Технического задания нет. Посчитать доходы и расходы в эксель вручную.
Санкт-Петербург
Фрилансеры
2025-09-25
Откликнуться
Программирование в Excel
дистанционно
договорная
Автоматизация расчётов, анализ и работа с базами данных, автоматизация формирования отчётов, визуализация данных (графики, диаграммы), финансовые расчёты, автоматизация составления документов, оптимизация закупок, управления запасами, разработка калькуляторов. Расчёты: по производству изделий. Технического задания нет.
Москва
Фрилансеры
2025-09-24
Откликнуться
Программирование в Excel
дистанционно
договорная
Анализ и работа с базами данных. Технического задания нет. В таблицу собранные данные по ТОП 20 контрагентам и ТОП 20 регионов Нужно сделать сводную таблицу в разрезе каждого клиента по сезонам и стилям выделить долю оборота клиента в регионе.
Москва
Фрилансеры
2025-09-24
Откликнуться
Программирование в Excel
дистанционно
договорная
Автоматизация расчётов, анализ и работа с базами данных, разработка калькуляторов, автоматизация составления документов, оптимизация закупок, управления запасами. Расчёты: статистические, логистические. Технического задания нет.
Москва
Фрилансеры
2025-09-24
Откликнуться
Программирование в Excel
дистанционно
договорная
Автоматизация расчётов, автоматизация формирования отчётов, визуализация данных (графики, диаграммы). Расчёты: статистические, логистические. Техническое задание есть. Пожелания и особенности: Онлайн не рассматриваю.
Москва
Фрилансеры
2025-09-24
Откликнуться
Программирование в Excel
дистанционно
договорная
Автоматизация формирования отчётов. Техническое задание есть. Пожелания и особенности: Есть два типовых файла эксель. Данные из одного файла из статичных ячеек должны подставляться в статичные ячейки другого файла.
Москва
Фрилансеры
2025-09-24
Откликнуться
Программирование в Excel
дистанционно
договорная
Автоматизация формирования отчётов, визуализация данных (графики, диаграммы), разработка калькуляторов, оптимизация закупок, управления запасами. Технического задания нет.
Санкт-Петербург
Фрилансеры
2025-09-24
Откликнуться