Алиса, напиши код: скрипт для таблицы заявок без программиста
«Алиса, код» для рутины: какой запрос дал в LibraChat скрипт на Python, который склеил выгрузки заявок без дублей, как его запустить и когда хватит Excel.
Марина
Контент-маркетолог LibraChat
7 мин чтения
Я отправила в LibraChat скучную рабочую задачу: склеить несколько выгрузок заявок в один файл и убрать повторы. Пришёл скрипт на Python и инструкция запуска для человека, который Python ни разу не ставил.
Если ты набираешь «Алиса, код» ради такой же рутины, запомни одно, и неважно, какой нейросети пишешь. Нейросети нужен не язык программирования, а твои данные, нужный результат и твой компьютер. Тогда код можно запускать, а не расшифровывать. Это блог LibraChat, поэтому показываю на его настоящем ответе.
Хочешь от Алисы код? Сначала опиши данные
Просьба «напиши код для заявок» почти ничего не говорит. Какие заявки? В каком файле? Что считать повтором? Ответ придётся угадывать, и угадает он не обязательно в твою пользу.
Перед тем как писать запрос, ответь себе на четыре вопроса:
какие файлы на входе: формат и названия колонок, как они стоят в выгрузке;
что должно получиться: один файл, какого формата, по какому признаку убирать повторы;
где будешь запускать: Windows или Mac, стоит ли там Python;
кто ты: фраза «я не программирую» просит объяснять каждый шаг, а не только выдать код.
Последний пункт я бы не пропускала. Без него инструкция запуска может свестись к одной строке для тех, кто и так всё умеет.
Запрос, который можно копировать
Вот что я отправила. Замени колонки и формат на свои: если выгрузки у тебя в Excel, а не в CSV, так и напиши.
Я маркетолог и не программирую. У меня в папке несколько CSV-файлов с заявками с сайта, в каждом колонки имя, телефон и дата. Напиши скрипт на Python, который соберёт их в один файл Excel и уберёт повторы по телефону, и объясни, как запустить его на Windows, если Python у меня ещё не стоит.
Отправить такой запрос можно в LibraChat: он помогает с кодом в обычной переписке, без отдельных программ. Ответ начался не с кода, а с того, что скрипт будет делать:
Скрипт ниже читает все CSV из одной папки, склеивает их и оставляет одну заявку на каждый телефон.
Дальше шла деталь, до которой я бы сама не додумалась. Повторы скрипт ищет по цифрам номера: оставляет только цифры и меняет ведущую восьмёрку на семёрку. Поэтому номер с плюсом и скобками и тот же номер через восьмёрку он считает одним человеком. В выгрузках с разных форм телефон почти всегда записан по-разному. Без этой детали дубли остались бы на месте, а я была бы уверена, что их нет.
И ещё одно решение, которое ответ принял сам и честно назвал:
Если даты читаются, остаётся более поздняя заявка.
Здесь стоит остановиться. Это решение за тебя, и его легко не заметить. Тебе нужна последняя заявка или первая? Для отдела продаж обычно последняя: в ней свежий интерес. Нужна первая — так и допиши в запрос.
Запустить скрипт, если Python ещё не стоит
Самая страшная часть для непрограммиста оказалась короткой. Установка — один шаг, в котором легко ошибиться:
В первом окне установщика обязательно включите Add python.exe to PATH, затем нажмите Install.
Пропустишь галочку, и команды потом не найдут Python. Это та строка, которую я бы выделила маркером.
Второй шаг избавляет от путешествия по папкам в чёрном окне:
Откройте эту папку в Проводнике, щёлкните по адресной строке, введите cmd и нажмите Enter.
Командная строка откроется сразу там, где лежат скрипт и выгрузки. Дальше по ответу две команды: одна ставит нужные библиотеки, вторая запускает скрипт. Сам код ответ велел сохранить в Блокноте через «Сохранить как», в кодировке UTF-8.
Ещё одну ловушку ответ назвал заранее:
Если окно Excel с этим файлом открыто, сохранение не пройдёт: закройте файл и запустите скрипт ещё раз.
Мелочь. Но именно на ней новичок обычно решает, что «код не работает». Хорошо, что она названа до запуска, а не после.
Проверь результат на копии выгрузок
Код из чата — черновик, пока ты не увидишь его результат на своих данных. Я бы проверяла так:
запускай скрипт на копии папки, а оригиналы выгрузок не трогай;
сравни числа, которые скрипт выводит в окне: сколько было строк с телефоном и сколько осталось уникальных;
открой итоговый файл и найди двух клиентов, которые точно писали дважды: остался ли каждый одной строкой;
посмотри в колонку «файл»: она показывает, из какой выгрузки взята строка.
Если колонки в твоих файлах называются иначе, скрипт сам напишет, какие заголовки нашёл:
Если в каком-то файле другие заголовки, скрипт напишет их в окне — пришлите эту строку, и названия можно будет добавить в список.
Пришли именно строку заголовков, а не файл с телефонами клиентов. Для правки кода чужие номера не нужны, а заголовков достаточно.
Первый запуск может закончиться красными строками в окне. Скрипт в ответе сам ловит ошибку и пишет её текст, а окно не закрывается, пока не нажмёшь Enter.
Что делать дальше? Скопируй текст ошибки целиком, до последней строки. Не пересказывай его своими словами: «что-то про кодировку» не поможет, а точная строка поможет. Отправь её в тот же чат, где пришёл скрипт. Задача и код уже лежат выше в переписке, а LibraChat учитывает сказанное раньше в этом чате: ошибку он сверит с тем самым кодом.
Самые частые причины у новичка скучные. Файл сохранён не в той кодировке, библиотеки не установились, Excel держит итоговый файл открытым. Все три ответ назвал заранее, так что сначала проверь их по списку, а потом уже спрашивай.
Иногда код не нужен: хватит сводной таблицы
Если выгрузка одна и лежит в Excel, скрипт — лишний шаг. Я проверила это вторым запросом:
Без программирования: в Excel у меня на листе столбец телефонов из заявок за месяц, в нём есть повторы. Как убрать повторы и посчитать, сколько заявок пришло с каждого номера? Объясни по шагам, какие кнопки нажимать и какую формулу вписать.
Ответ сразу предложил путь без формул:
Сводная таблица сразу даст список уникальных номеров и число заявок по каждому. Исходный столбец при этом не меняется.
Вторая фраза здесь важнее первой. Намного. Исходные данные остаются целыми, а значит, ошибиться можно без последствий.
Отдельно ответ предупредил о частой ловушке сводных таблиц:
В «Значениях» должно стоять Количество, не «Сумма».
Телефоны Excel может принять за числа и сложить их. Получится огромное бессмысленное число вместо количества заявок. Для новых версий Excel ответ дал и формулы, но напомнил, что в русской версии аргументы разделяются точкой с запятой. Как собирать такие формулы под свою таблицу, подробно разобрано в статье как сделать формулу.
Последнее предупреждение из того же ответа спасает сами данные:
Кнопкой Удалить дубликаты по самому столбцу A пользоваться не стоит, пока счёт не готов: повторы исчезнут, и посчитать заявки уже будет не из чего.
Одна оговорка. Сводная таблица считает номер с плюсом и тот же номер через восьмёрку разными. Если телефоны в столбце записаны по-разному, Excel недосчитает повторы, и тогда честнее взять скрипт.
Как выбрать между двумя путями? Одна таблица и разовый подсчёт — Excel. Несколько выгрузок каждую неделю — скрипт: один раз настроишь и дальше просто кладёшь файлы в папку.
Один шаг на сегодня
Открой последнюю выгрузку заявок. Выпиши названия её колонок ровно так, как они стоят в файле, с теми же буквами и пробелами. Это и есть половина хорошего запроса. Вторая половина — одна фраза о том, что должно получиться на выходе.