Google Таблицы
62.7K subscribers
571 photos
207 videos
8 files
953 links
С 2017 года приручаем Google Таблицы и Google Apps Script.
Формулы и скрипты, которые работают, а не "почти".

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

Обучение, услуги, реклама: @namokonov 🍒

Оглавление: goo.gl/HdS2qn
РКН: clck.ru/3F3u9M
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Курс "Скрипты и Формулы в Google Таблицах" от @google_sheets

Сколько угодно можем хвалить свой курс, но лучше нас говорят те, кто уже с нами учится и работает 😉

🎧 В этом посте прикрепим кружочек с отзывом от Валерия, а в комментариях соберем другие живые отзывы клиентов и участников курса.

Старт уже через неделю, успевай забронировать место заранее 🔥

Программа и все детали курса: https://shagabutdinov.ru/sheets-online

Любые вопросы по формату, оплате и программе пиши мне: @namokonov
5🔥3🍓1
Продолжаем рассказывать про наш курс из чужих уст :)

Ниже - отзыв Владислава! Он учился на прошлом потоке.

Текущий курс стартует через неделю.

Программа и все детали курса: https://shagabutdinov.ru/sheets-online

Любые вопросы по формату, оплате и программе пиши мне: @namokonov
Forwarded from Владислав Фомин
Media is too big
VIEW IN TELEGRAM
4👍1🔥1🍓1
This media is not supported in your browser
VIEW IN TELEGRAM
Вводим 2,3,5 в ячейку и вторая, третья и пятая строки выделяются /УСЛОВНОЕ ФОРМАТИРОВАНИЕ

Друзья, показываем простой трюк.

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

Как это реализовать:
1) Строки, которые нужно выделить будем вводить в ячейку E2;
2) Выделяем диапазон данных, у нас это A:C;
3) Условное форматирование;
4) Добавить правило > форматирование формулой > вводим формулу:

=match(row($A1); split($E$2;",");0)


Что делает формула УФ: делит ячейку с номерами строк по разделителю запятая с помощью SPLIT, получает массив номеров, далее ищет каждый номер строки в этом массиве с помощью MATCH, если находит - возвращается ИСТИНА и условное форматирование закрашивает эту строку.

Таблица с примером


---

Наш курс! https://shagabutdinov.ru/sheets-online
🔥126👍6
Media is too big
VIEW IN TELEGRAM
🔎 Как выделить все строки, где есть текст «конец дня» в Google Таблицах

Частый вопрос, который регулярно всплывает в работе с таблицами.

Записал короткое видео, как это сделать.

Кстати, уже во вторник стартует наш курс по формулам и скриптам в Google Таблицах
Там таких рабочих приемов десятки, от простых до продвинутых.

📘 Программа и все детали курса:
https://shagabutdinov.ru/sheets-online

Любые вопросы по формату, оплате и программе
пиши мне в личку: @namokonov
51👍7🔥73
🚀 trimRange. Ускоряем обработку открытых диапазонов (пост от Алексея Одиссея)

Google Таблицы хорошо оптимизированы под формулы массивов. Поэтому мы часто используем открытые диапазоны вроде A:A или A:C, чтобы не задумываться, как будут разрастаться данные.

Но в реальных таблицах это может мешать. Когда в файле тысячи пустых строк "про запас", формулы с открытыми диапазонами начинают делать лишние вычисления и заметно замедляют работу.

🎯 Сегодня покажем приём, который помогает ускорить таблицы: обрезаем диапазон (или массив) до последней НЕпустой строки.

Мы будем обрезать диапазон (или массив) до последней НЕ пустой строки.


=ArrayFormula(LET(
ref; A:C;
lastRow; MAX(IFNA(byCol(ref; LAMBDA(col; MATCH({"zzz";1E+100}; col)))));
IFERROR(OFFSET(ref;;;lastRow); ARRAY_CONSTRAIN(ref; lastRow; COLUMNS(ref)))
))


КАК ЭТО РАБОТАЕТ смотри под катом ⤵️

💡MATCH({"zzz"; 1E+100}; col) - это "сердце" формулы.
Т.к. вся формула у нас обёрнута в ArrayFormula, то все функции в т.ч. и MATCH будут работать как формулы массива. Поэтому фактически, данная часть будет выполнена 2 раза:
1. MATCH("zzz"; col) - т.к. 3-й аргумент функции опущен, то по-умолчанию search_type = 1, т.е. MATCH ищет позицию наибольшего элемента в массиве col, который меньше (или равен) "zzz". Почему именно "zzz"? Это такой трюк! С точки зрения лексикографического анализа, "zzz" — это очень «большая» строка! Все слова, которые не начинаются на "zzz", будут лексикографически меньше.
2. MATCH(1E+100; col) - аналогично поиску текста выше, но на этот раз мы ищем числа. Чтобы найти любые числа, мы задаём очень большое число - 1 ГУГОЛ ! Поэтому если вы не занимаетесь космологией и теоретической физикой, то величины больше вряд ли встретятся у вас в таблицах. Для справки, число атомов во Вселенной оценивается как 10^80 ;)

💡byCol(ref; LAMBDA(col; MATCH(...)) - в этой части мы проходимся по каждому столбцу диапазона(или массива) ref и находим наибольшие позиции

💡lastRow; MAX(IFNA(byCol(...))); - т.к. в наших данных не всегда есть И текст И числа, подавляем ошибки #N/A, а затем находим наибольшее число по всем столбцам. Результат обозначаем как lastRow в рамкам адресного пространства имен функции LET

💡OFFSET(ref;;;lastRow) - здесь мы указываем наш диапазон и 4-й аргумент, высоту возвращаемого диапазона, фактически обрезая его.

💡 IFERROR(OFFSET(...); ARRAY_CONSTRAIN(ref; lastRow; COLUMNS(ref)))
На случай, если ref является массивом, а не диапазоном, а такое возможно, например, если он получен в результате каких-то действий на предыдущих шагах в рамках функции LET, OFFSET(...) выдаст ошибку, и будет выполнена функция во втором аргументе IFERROR - ARRAY_CONSTRAIN. Эта функция как раз и сократит массив до вычисленной строки lastRow.


🌟Мы используем эту логику в большинстве рабочих кейсов и вынесли её в именованную функцию TRIMRANGE, чтобы Вы могли легко импортировать её.
❗️Пример таблицы

Записывайтесь на курс "Скрипты и Формулы в Google Таблицах", где мы разбираем подобные кейсы 😉
1🔥147
This media is not supported in your browser
VIEW IN TELEGRAM
Курс: скрипты и формулы от канала @google_sheets. Будет огонь 🔥

Программа: https://shagabutdinov.ru/sheets-online

Записаться / вопросы: @namokonov
1.05K6
Media is too big
VIEW IN TELEGRAM
Перестань копировать формулы! Сделай библиотеку и бери их оттуда.

В видео пошагово:
>
пишем свою функцию (например, QUERY с итогами)
> создаем ее как именованную
> импортируем и используем в других Google Таблицах

Зачем это тебе:
Если у тебя есть сложные формулы (сумма прописью, пивот/анпивот), ты пишешь их в одной Таблице и дальше просто переносишь в любые свои Иаблицы.

Такие приемы и не только разбираем на практике в нашем курсе по Google Таблицам: формулы + скрипты.

Курс стартует уже завтра.
Запись и программа: https://shagabutdinov.ru/sheets-online

Любые вопросы по формату, программе и оплате: @namokonov
1220👍10🍓3
Media is too big
VIEW IN TELEGRAM
🔥 Идет донабор на курс “Формулы + Скрипты в Google Таблицах” 🔥

📎 В приложении
прикрепил часть урока, чтобы посмотреть формат.


Во фрагменте наш маэстро Алексей рассказывает про работу с датами и типы данных


Мы уже провели 2 полноценных урока, и сейчас открываем последний заход для тех, кто не успел с самого старта.

👉 Хорошая новость
Так как курс уже начался, сделаем скидку для новых участников.

Если давно хотел перестать копировать формулы и начать строить систему, самое время.

📩 Пиши
@Namokonov, расскажу условия и добавлю в поток.
16
This media is not supported in your browser
VIEW IN TELEGRAM
🎁 Сделай себе подарок на Новый год

Ускорь работу на своем рабочем месте в 2 раза.

🚀 Залетай на наш курс: возьмем еще только 2 человек (для последних сделаем скидку от цены в лендинге!)

📌 Программа: https://shagabutdinov.ru/sheets-online

💬 Детали и оплата: @namokonov
24👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
За 2 минуты показываю, как работает функция MAP, простейший пример

Берем список людей и баллы за тест и с помощью MAP и LAMBDA определяем, кто прошел тест, а кто нет.
1👍40🔥29🍓53
This media is not supported in your browser
VIEW IN TELEGRAM
С наступающим!

Друзья, спасибо, что были с нами!

В следующем году будет много интересных постов и готовых решений для вас ❤️
5636🔥8👍3🍓1
Друзья, всем привет! Потихоньку возвращаемся к будням после праздников 🙂

Надеюсь, вы хорошо отдохнули, перезагрузились и набрались сил.

Чтобы мягко войти в ритм - маленькое задание для вас:

Есть таблица с именами и баллами.
Нужно одной формулой вывести:

* прошёл, если балл >= 80
* не прошёл, если балл < 80

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


Пишите свои решения в комментариях. Всем, у кого получится, добавим +5 кармы в чате @google_spreadsheets_chat 😉

Поехали потихоньку в 2026!
👍124
Заполняем пустые ячейки SCAN-ом

Друзья, привет! Всех с первым рабочим днём, с возвращением из праздников 🙂

Посмотрите на столбцы A:A и B:B на скриншоте. Очень часто для работы с такими данными нам нужно заполнить пустые ячейки значениями из строк выше.

Сейчас это проще всего сделать с помощью функции SCAN. Формула выглядит так:


=SCAN(;B3:B11; LAMBDA(acc;value;if(value="";acc;value)))


SCAN проходит по диапазону последовательно, сверху вниз (если мы задаем в аргумент столбец) и на каждом шаге хранит и возвращает накопленное значение.

Внутри LAMBDA логика простая:
• если ячейка пустая, берем предыдущее значение
• если непустая, обновляем накопленное значение

❄️ Всем прекрасной недели! Если есть любые вопросы про Таблицы, Google apps script, Biq Query - задавайте их в нашем чате: @google_spreadsheets_chat

PS Раньше заполнение пустых ячеек тоже было возможно, мы использовали более длинную формулу:

=ARRAYFORMULA(VLOOKUP(ROW(B3:B11);FILTER({ROW(A3:B11)\A3:B11};B3:B11<>"");2;1))
🔥4510👍8
Скрипт, отправляющий данные из "формы" в Таблицу

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

Недавно в наш чат пришел подписчик с такой задачей.

Есть диапазон B1:B4. В него он заносит данные о текущей продаже.
Нужно по нажатию кнопки отправлять эти данные в последнюю заполненную строку листа, а форму очищать для следующей записи.

Сказано - сделано 🙂
Мы написали простой скрипт и повесили его на кнопку. Скрипт в Таблице.

Только код скрипта с комментариями:


function paste() {

// Получаем активную таблицу и активный лист
const sh = SpreadsheetApp.getActive().getActiveSheet();

// Берем диапазон B1:B4
const range = sh.getRange("B1:B4");

// Считываем значения диапазона в виде двумерного массива
let values = range.getValues();

// Преобразуем двумерный массив в одномерный
// было: [[v1], [v2], [v3], [v4]]
// стало: [v1, v2, v3, v4]
values = values.map(row => row[0]);

// Очищаем содержимое диапазона B1:B4
range.clearContent();

// Добавляем полученные значения в конец листа одной строкой
sh.appendRow(values);

};


💬 Наш чат по Google Таблицам и скриптам:
@google_spreadsheets_chat

🛠 Нужна, автоматизация или скрипты под задачу?
По заказу работ: @namokonov

PS Чтобы повесить скрипт на кнопку
1) вставляем в Таблицу любое изображение
2) кликаем на него, кликаем на три точки (бутерброд) в правом верхнем углу
3) кликаем "назначить скрипт", вводим имя скрипта и кликаем "сохранить"
👍2415🔥6
❗️Экскурсия по ChatGPT для финансиста и бухгалтера. Пошаговый разбор возможностей ChatGPT

🗓 Формат: онлайн. 90 минут разбора ChatGPT от Создателей крупнейшего сообщества финансистов в России на 40 000 чел.

Предварительная запись обязательна ➡️ ЗАПИСАТЬСЯ

Программа:
1. Знакомство с ChatGPT: регистрация, интерфейс, бесплатная vs платная версии.

2. Как правильно задавать вопросы (промты), чтобы ИИ давал не «воду», а точные решения.

3. Практика, анализ данных, генерация изображений, создание AI-помощника под ваши задачи — всё покажем подробно.

Все, кто участвует:
Получат рабочее пособие «Как с нуля внедрить нейросети в работу финансиста»
Поймут, как использовать ChatGPT для анализа, отчетности и автоматизации. Смогут задать любой вопрос во время эфира.

Ссылка на участие ➡️ https://fin-academy.pro/chatgpt
Кол-во бесплатных мест=100
👍32🔥2
🔥95🍓1
Media is too big
VIEW IN TELEGRAM
Лайв-кодинг! Рекурсия! Объясняем 👨‍💻

Друзья, сегодня в режиме в лайв-кодинга напишем рекурсивную функцию, которая соберёт все папки нашего Google Диска, начиная с корня. А код в комментарии!

💬 Наш чат по Google Таблицам и скриптам:
@google_spreadsheets_chat

🛠 Нужна, автоматизация или скрипты под задачу?
По заказу работ: @namokonov
👍10🔥7🍓1
Google Таблицы
За 2 минуты показываю, как работает функция MAP, простейший пример Берем список людей и баллы за тест и с помощью MAP и LAMBDA определяем, кто прошел тест, а кто нет.
Функция MAP, "сложный" пример со многими звездочками

Друзья, по многочисленным просьбам выкладываем пример использовании функции MAP там, где она действительно нужна

Таблица с примером

Объяснение того, как работает функция (и зачем она), от автора - в первом комментарии к посту.

Спасибо, Алексей Одиссей!
1🔥17👍75