Обучение, заказы, реклама: @namokonov
С 2017 года приручаем Google Таблицы и Google Apps Script, создаём ботов в Telegram и Max.
Реальные кейсы и автоматизация.
Оглавление: clck.ru/3UJwhf
РКН: clck.ru/3F3u9M
Post #840
10.8K
GO @google_sheets
Showing posts older than #841 · Back to latest

IMPORTRANGE?;1. крутейшая таблица с подсказками про query (19)
t.me/google_sheets/6162. Народный Telegram бот❗️Отправляем сообщения прямо из Таблицы (13)
t.me/google_sheets/5563. СОБИРАТОР 4.0 (9)
t.me/google_sheets/661 4. ЗАПУСКАТОР – реагируем на изменения формул / Таблицы и запускаем скрипты (9)
t.me/google_sheets/7195. Считаем сумму по каждой строке / столбцу в формуле массиве (8)
t.me/google_sheets/5026. Избранные посты нашего канала (7)
t.me/google_sheets/418 7. ускоряем работу Таблицы (7)
t.me/google_sheets/1438. Условное форматирование. Выделяем дубликаты и не только (7)
t.me/google_sheets/2969. Как сделать, чтобы при выставлении определенного статуса в соседней колонке Таблицы автоматически появлялась дата и время? (7)
t.me/google_sheets/17110. ВЫГРУЖАТОР: СОЗДАЁМ РЕЕСТР ФАЙЛОВ ИЗ ПАПКИ, ВЛОЖЕННОСТЬ – УЧИТЫВАЕТСЯ (7)
t.me/google_sheets/63511. ДВИГАЕМ ВРЕМЯ ФОРМУЛАМИ (7)
t.me/google_sheets/59312. Важный скрипт. Связанные выпадающие списки из кэша (7)
t.me/google_sheets/40813. Памятка по работе с условиями в формулах FILTER, QUERY, SUMIF(и аналогах) (6)
https://t.me/google_sheets/28314. Как посчитать:
- Количество ячеек, начинающихся не на букву "Т"?15. Повторяем диапазон N раз (6)
t.me/google_sheets/58716. Библиотека небольших скриптов onEdit (6)
t.me/google_sheets/43217. памятка по условиям, с помощью которых можно отобрать (для функции SUMIFs/СУММЕСЛИМН, например) пустые и непустые ячейки (5)
t.me/google_sheets/7718. Работаем со вшитыми (богатыми 😊) в ячейки ссылками (4)
t.me/google_sheets/66819. ОТПРАВЛЯТОР 2.0. Создаём из Таблиц PDF и JPG и рассылаем в Телеграм по заданному расписанию
t.me/google_sheets/64320. отправлятор таблиц в телеграм чаты
бесплатно и по расписанию (4)/getgroupid узнать chat_id чатов и внести в ячейку I2 (один или несколько через запятую), потом бота можно удалить;=ARRAYFORMULA(EXACT(искомое значение; просматриваемый столбец))
Ну а дальше дело техники: находим строку с ИСТИНОЙ через ПОИСКПОЗ / MATCH=MATCH(TRUE; EXACT(искомое значение;просматриваемый столбец);0)
И ИНДЕКСом / INDEX вытаскиваем из столбца с нужными данными значение из найденной строки:=INDEX(возвращаемый столбец; MATCH(TRUE; EXACT(искомое значение;просматриваемый столбец);0))
Можно воспользоваться и функцией FILTER - она будет возвращать несколько значений, если их будет больше одного, а не только первое:=FILTER(возвращаемый столбец;EXACT(искомое значение;просматриваемый столбец))
Таблица с примером (Сделать копию)=A1=B1
- в СУММЕСЛИМН / SUMIFS и других подобных функциях
Google Таблицы Библиотеки в Google Apps Script – что это такое – создаём и публикуем свою – импортируем в таблицу – используем – и много полезных ссылок Очередной прекрасный материал от Михаила Смирнова: telegra.ph/Google-Apps-Script-Library--Biblioteki-v-Gugl-Skriptah…
— создаём триггер для библиотечной функции=LAMBDA([переменная]; … ; [переменная]; формула)
=C2 / B2 - 1
=LAMBDA(план ; факт ; факт / план - 1)



IMPORTRANGE() там, где она раньше работала.IMPORTRANGE(). Второй параметр - это импортируемый диапазон.IMPORTRANGE("id"; "A:A")
Меняем одну букву A на a:IMPORTRANGE("id"; "A:a")
Должно отпустить. Но потом проблема может вернуться. На этот случай есть 2-й костыль.IMPORTRANGE() внутри IFERROR(). Первый - оригинальный, второй - с изменённым регистром одной буквы. Например, так:IFERROR(IMPORTRANGE("id"; "A:A"); IMPORTRANGE("id"; "A:a"))
Сколько у вас в формуле IMPORTRANGE() - все надо так оформить.
... вставляем диапазон (из таблицы или результат каких-то формул).=QUERY(...; "OFFSET N";)=TRANSPOSE(QUERY(TRANSPOSE(...); "OFFSET N";))=QUERY(...; "SKIPPING 2";)=QUERY(QUERY(...; "OFFSET 1";); "SKIPPING 2";)=TRANSPOSE(QUERY(TRANSPOSE(...); "SKIPPING 2";))=TRANSPOSE(QUERY(QUERY(TRANSPOSE(...); "OFFSET 1";); "SKIPPING 2";))TRANSPOSE.=TRANSPOSE(QUERY(TRANSPOSE(QUERY(...; "SKIPPING 2";)); "SKIPPING 2";))=QUERY(...; "SKIPPING N";)=QUERY(QUERY(...; "OFFSET M-1";); "SKIPPING N";)onEdit(). Как вы помните – onEdit() не надо запускать, он реагирует на все изменения Таблицы.onEdit(), что ячейка изменилась (чекбокс нажали или отжали) и выведем окно со словом "привет":function onEdit(e) {
//определяем текущий лист, который редактируется и диапазон
let sheet = e.source.getActiveSheet();
let range = e.range;
//проверяем, редактируется ли ячейка "H2" на "ЛистЛист"
if (range.getA1Notation() == 'H2' && sheet.getName() == 'ЛистЛист!') {
//если да — что-то запускаем
Browser.msgBox('привет!')
}
}Google Таблицы Пользовательские форматы: мини-памятка Еще одна памятка - на этот раз по символам, используемым в кодах пользовательских (Custom) форматов. Напомним, что свои форматы создаются по адресу: Формат → Числа → Другие форматы → Другие форматы чисел Format → Number…

[Red] [Green] [Blue] [Yellow] [Magenta] [Green] [Yellow] [Cyan][Color1] [Color2] ... [Color55]0,, — число будет отображаться в миллионах.0.0# — формат, в котором всегда будет отображаться один знак после запятой (даже если число целое), а еще один — только если есть сотые.0*- — число и затем повторяющиеся дефисы до конца ячейки.0_);(0). Она не будет отображаться, вместо нее будет пустота шириной ровно со скобку.0" руб."
; (точка с запятой) — Разделяет разные форматы. Есть 2 структуры: можно перечислить форматы (все или некоторые) для положительных, отрицательных чисел, нуля и текста. Указываются именно в таком порядке и через точку с запятой. Либо форматы для одного или двух условий (и всех остальных случаев). Условия задаются в квадратных скобках [Условие1] Формат ; [Условие 2] Формат; формат для остальных случаев.REGEXMATCH)REGEXREPLACE)REGEXEXTRACT). \d \D \s \S \w \W \b \B (для \w нужно понимать, что не во всех средах будут матчится не-латинские буквы)\n \r \t
Границы ^ $
Выбор или-или |
Выбор из набора [ ] и выбор всего, кроме символов из набора [^ ]
Квантификаторы жадные ( * + {n} {n,m} {n,} ) и как управлять их "жадностью" (*? +? {n,m}? {n,}?) ( )
Неизвелекаемые группы (?: )
Для отладки табличных выражений на regex101 слева надо включать Golang