Google Таблицы
60.4K subscribers
657 photos
218 videos
8 files
1.01K links
Обучение, заказы, реклама: @namokonov

С 2017 года приручаем Google Таблицы и Google Apps Script, создаём ботов в Telegram и Max.

Реальные кейсы и автоматизация.

Оглавление: clck.ru/3UJwhf
РКН: clck.ru/3F3u9M
Download Telegram
Google Таблицы
Интервью! Интервью! Интервью! ⚡️ Если не грузится видео из TG, ссылка на vkvideo 🚛 Telegram, MAX, бензин и водители. Что между ними общего? Таймкоды: 00:00:00 О компании 00:02:34 Направления нашей работы 00:08:30 Обзор Telegram-бота 00:29:49 Создаём…
Продолжаем сериал о переводе компании со 100+ машин из Telegram в MAX.

Наша система развивалась несколько лет. На одной таблице завязаны десятки других листов и скриптов, поэтому просто добавить два новых столбца (chatId и userId для MAX) было нельзя.

Мы сохранили chatId и userId... в примечаниях ячеек. (см. второй скрин)

Теперь, когда водитель пишет боту в MAX о проблеме, бот получает его ID, находит по примечания его строку и извлекает из неё всю необходимую информацию и про водителя и про чатике поддержки.

В результате механики мгновенно получают сообщение:

 
Нужна срочная помощь. Тону в бокале мартини 🍸



Нюанс. Читать Google Таблицу при каждом обращении бота - медленно.

Поэтому решение такое: отдельный Apps Script срабатывает при любом изменении этого листа, собирает все данные в удобный объект и сохраняет его в Script Properties.

Дальше бот работает уже с этим объектом. Получается значительно быстрее, чем каждый раз обращаться к таблице.

Возможностей Google Таблиц много и они разные :)

PS Если у вас уже есть бот в Telegram и вы планируете переезд в MAX - пишите @namokonov

PPS А еще на курс с Анжелой про ДДС постепенно набирается, не пропустите: t.me/google_sheets/2192
5👍5🔥2
🚛 Еще один бот переехал из Telegram в MAX без переписывания всей системы.

Помните наш сериал про перевод компании с Telegram на MAX? Сегодня вышла очередная серия.

Перевели бота, в котором водители отмечают статусы рейса: приехал, загрузился, выехал, выгрузился и т.д.

Дальше всё группируется и автоматически разлетается в чаты логистов (в MAX, но можно однвременно и в Telegram) и записывается в Google Таблицу.

В итоге логисты всегда знают, в каком статусе находится машина, а бухгалтерия без лишней ручной работы понимает кому сколько заплатить. 🚛📊

Такими маленькими шагами Telegram постепенно меняется на MAX - без боли и без переписывания всей системы с нуля.

Создание ботов в Telegram / MAX: @namokonov
👍31
Каналу @google_sheets почти 10 лет.

За это время мы сделали сотни проектов: Telegram и MAX-боты, сложные скрипты, CRM и ERP-системы, интеграции и автоматизацию бизнеса на базе Google Таблиц и других сервисов.

Обсудить проект: @namokonov
🔥112
Лучшее доказательство пользы курса - показать первый урок.

Это про Таблицу со скриптом с парсингом выписок.

А еще будет мощный инструмент от Анжелы, теория и нетвокиркинг.

Что еще будет внутри курса: t.me/google_sheets/2192

Чтобы присоединиться, напишите "ДДС" @namokonov
4👍4🔥3
Я думал, ты пошутил 😂

Именно так мне ответили после того, как я выполнил утреннюю просьбу клиента.

Сообщение было простым:

- Женя, не хочу платить за полные данные по именам водителей штраф. Зашифруй.

Без долгих обсуждений.

Сказано - сделано. 🙂😅
🔥83👍1🍓1
🧩 Загадка для подписчиков

Друзья, а вот наконец и возвращаемся к формулам!

Нужно привести валюты из столбцов A-D к долларам по курсу на дату, указанную в B1, а затем прибавить доллары из столбца E. Результат - в F.

Можно использовать GOOGLEFINANCE, но необязательно.

Условие: если курса на выбранную дату нет, нужно взять ближайший предыдущий доступный курс.

Пишите свои варианты в комментариях. Чуть позже покажем наше решение 🙂

Таблица
👍63🍓1
Google Таблицы
🧩 Загадка для подписчиков Друзья, а вот наконец и возвращаемся к формулам! Нужно привести валюты из столбцов A-D к долларам по курсу на дату, указанную в B1, а затем прибавить доллары из столбца E. Результат - в F. Можно использовать GOOGLEFINANCE, но необязательно.…
Привет! Решение будет из двух частей.

Сначала получим курсы валют на выбранную дату. Но есть нюанс: если эта дата выпадает на выходной или праздничный день, данных может не быть. Поэтому запрашиваем курсы за последние 7 дней и берём последний доступный.

Что происходит в формуле:
MAP(A2:E2;...) - по очереди обрабатывает каждую валюту.
curr - текущая валюта из ячейки
IF(curr="USD";1;...) - для доллара возвращаем курс 1.
LET(data;...) - сохраненяем полученную таблицу по каждой паре под именем data.
INDEX(data;ROWS(data);2) - берём последнее значение курса из второго столбца.
Значение B1+1 в параметре enddate нужно, чтобы GOOGLEFINANCE включила в выборку курс за дату B1.

Формула целиком:

=MAP(A2:E2;LAMBDA(curr;
IF(curr="USD";1;
LET(
data;GOOGLEFINANCE(
"CURRENCY:"&curr&"USD";
"price";
$B$1-6;
$B$1+1
);
INDEX(data;ROWS(data);2)
)
)
))
👍52
Google Таблицы
🧩 Загадка для подписчиков Друзья, а вот наконец и возвращаемся к формулам! Нужно привести валюты из столбцов A-D к долларам по курсу на дату, указанную в B1, а затем прибавить доллары из столбца E. Результат - в F. Можно использовать GOOGLEFINANCE, но необязательно.…
Вторая часть: пересчёт в доллары.

Теперь посчитаем значения в каждой строке в долларах.

BYROW по очереди обрабатывает каждую строку, а SUMPRODUCT умножает суммы в каждой валюте на соответствующие курсы и складывает результаты.

В итоге получаем общую сумму в долларах для каждой строки.

Конечно, обе части можно объединить в одну формулу. 😊


=BYROW(
A3:E;
LAMBDA(
row;
IF(
COUNTA(row)=0;;
SUMPRODUCT(row;$H$3:$L$3)
)
)
)


Таблица с решением
👍31🍓1
🚀 Перенесли очередного Telegram-бота в MAX

Для одной компании мы перенесли ранее разработанного бота из Telegram в MAX, сохранив его логику и функциональность.

Теперь бот:
принимает заявки на обслуживание
позволяет прикреплять фото и видео
автоматически формирует PDF по шаблону
отправляет документы на нужные адреса поддержки
сохраняет данные в таблицу

Сотрудник отправляет заявку один раз. Дальше бот сам формирует документ, направляет его ответственным и сохраняет историю обращения.

Меньше ручной работы. Быстрее обработка. Полный контроль по каждой заявке.

Нужен такой бот (Telegram / MAX) для вашей компании?

Напишите @namokonov
3👍2🔥2🍓1
Привет, друзья!

Завтра выложим Таблицу с GAS-скриптом, с помощью которой можно автоматически заполнять Google Документы из Таблицы.

Без дополнительных приложений, авторизаций в МАХ и СМС :)

А еще расскажем, как в шаблон документа можно заранее вставить печать.

Завтра дадим вам готовый инструмент 🚀
🔥37👍31
Создаем инвойсы (и вообще любые документы) из Таблицы без дополнительных приложений

Друзья, привет!

Показываю вариант автоматизации, который работает на Google Таблице + Google Apps Script + вашем шаблоне Google Документа.

На выходе скрипт автоматически создаёт:

📄 Google Документ
📑 PDF
📁 и сохраняет оба файла в указанную папку на Google Диске

Расскажу как все работает:

1. Берём Таблицу со скриптом и копируем себе.

На листе Create есть несколько основных настроек:

^ B2 - ссылка на папку Google Диска, куда сохранять готовые документы (вам её нужно заполнить)
^ B3 - ссылка на шаблон Google Документа
^ B4 - формула, которая формирует имя будущего файла
^ B1, С1 - здесь после запуска скрипта вы увидите ссылки на созданные документы

Например, у меня имя файла собирается из номера контракта и номера инвойса. Но здесь (и в любых ячейках, которые используются) можно использовать любую свою формулу.

2. Заполняем данные для шаблона

Начиная с 5-й строки, в первом столбце указываем переменные:

<SELLER>
<PAYER>
<LOT>
<CONTRACT>
<INVOICE NUMBER>

и т.д.

Во втором столбце находятся значения этих переменных.

Например:

<SELLER> → ООО "Технология Процессинг"

Скрипт находит <SELLER> в шаблоне Google Документа и заменяет его на значение из Таблицы.

При этом сохраняется форматирование, заданное в шаблоне Google Документа.

То есть вы можете самостоятельно добавить сколько угодно переменных вида <***> под свой документ.

3. Запускаем скрипт из меню "💼 Скрипты"

И получаем готовый Google Документ и PDF в нужной папке.

А ещё я добавил формулы (B21, B22), которые автоматически переводят сумму прописью на русском и английском языках.

Таким способом можно автоматизировать не только инвойсы, но и акты, договоры, коммерческие предложения, счета и любые другие документы, для которых вы создадите шаблон в Google Документе.

PS. Чтобы добавить печать с подписью, как в нашем шаблоне, сохраните печать и подпись на прозрачном фоне, вставьте их в шаблон в Google Документе и выберите положение "За текстом".

Таблица со скриптом
Пример шаблона
🔥16👍3
Выгружаем из Google Календаря всё

Привет, друзья!

Сегодня можно заниматься только делами с календарём, переворачивать мы не будем, но дадим вам полезную Таблицу.

Если вы хотите быстро выгрузить свои встречи и события за выбранный период, чтобы построить отчеты, контролировать дедлайны, что-нибудь еще на корпоративном, то Таблица будет вам полезна.

Она умеет:

^ выгружать список всех ваших календарей;

^ собирать все события из них за выбранный период - с датами, участниками, статусами и другими параметрами - на один лист "События".

Просто укажите даты на листе "Настройки" и нажмите "Обновить всё" - Таблица сама всё соберёт.

🔗 Открыть Таблицу и скопировать себе
10🔥4🍓1
API, IP, что это вообще? :) Может лучше начинать писать про пиво IPA?

Возвращаемся к теме доступа к API. Часто бывает так: у стороннего API доступ разрешён только с адресов из заранее верифицированного белого списка (whitelist).

А Google Apps Script (GAS) такой стабильный адрес дать не может - при каждом обращении к внешнему серверу запрос уходит со случайного IP из пула Google.

Незадача: сервис требует фиксированный IP, а инструмент, которым мы хотим им пользоваться, фиксированного IP не имеет.

Означает ли это, что ничего не получится, что из GAS к такому API вообще нельзя достучаться? Нет, можно - просто напрямую не получится, добавим посредника.

Идея решения:

1) Арендуем VPS-сервер;
2) Обязательно берём выделенный IP-адрес - важно, чтобы он не менялся;
3) Этот IP заранее добавляем в whitelist на стороне API;
4) Из GAS отправляем запрос на свой VPS - передаём туда логин/пароль или токен для авторизации и endpoint, к которому мы обращаемся;
5) VPS уже от своего (разрешённого) адреса обращается к API, получает данные и отправляет их обратно - в нашу Google Таблицу;

Получается простая цепочка:

GAS → VPS (фиксированный IP) → API → обратно в Таблицу


Если вам интересно, как настроить такой VPS для этой задачи - ставьте реакции, пишите в комментариях, в следующем посте покажем пошагово, что написать в консоли.


Спасибо Дмитрию Петровичу за интересную идею поста, которую он нам подкинул, у него скоро праздник, поздравим :)
👍156🍓3🔥2
Делимся опытом, пишите в комментариях

Друзья-программисты и вайбкодеры, часто видели эту ошибку (скриншот) в логах выполнения скриптов GAS?

Как правило - мы ее видим когда Таблица, к которой мы обращаемся недоступна, "зависла от сложности общих вычислений 😆" и не может отдать даже что-то простое.

Буквально вчера у меня было это в очередной раз, скрипт упал с этой ошибкой, когда я брал из Таблицы просто две ячейки.

Что делаете в таких случаях? Как вывести в сайдбар полоску "усталости" таблицы?

Поделитесь в комментариях. 🙏
5🍓1