This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека небольших скриптов onEdit()
Друзья, привет, в этом проекте мы собираем небольшие скрипты onEdit(), про которые когда-то писали на канале. А ниже — два новых скрипта, спасибо нашему чату за идеи.
1) Изменяем название листа в зависимости от введенного в ячейку A1:
2) Пользователь написал «лазер» в третьем столбце — отправим эту строку на другой лист
Друзья, привет, в этом проекте мы собираем небольшие скрипты onEdit(), про которые когда-то писали на канале. А ниже — два новых скрипта, спасибо нашему чату за идеи.
1) Изменяем название листа в зависимости от введенного в ячейку A1:
function onEdit(e) {
var ss = e.source;
var sheet = ss.getActiveSheet();
var r = e.range;
var v = e.value;
if(r.getA1Notation() === 'A1' && sheet.getName() !== v){sheet.setName(v)}
}
2) Пользователь написал «лазер» в третьем столбце — отправим эту строку на другой лист
function onEdit(e) {
var ss = e.source;
var sheet1 = ss.getActiveSheet();
var sheet2 = ss.getSheetByName("сюда");
var lr = sheet2.getLastRow() + 1;
var range = e.range;
var row = range.getRow();
var column = range.getColumn();
var value = e.value;
if(column == '3' && value.match(/лазер/gi)){
sheet2.getRange("A" + lr + ":" + "C" + lr).setValues(
sheet1.getRange("A" + row + ":" + "C" + row).getValues()
)}
}
❤1
Функция QUERY. Формируем запрос в WHERE ко всем колонкам формулой
Привет! Запрос в QUERY — текстовая строка и поэтому его всегда можно сформировать формулой.
Представьте — в ваших данных сто колонок и вы хотите написать запрос и вывести строки, в которых каждая ячейка будет больше 0.
Можно перечислить все сто колонок руками:
На скриншоте показываем, как это сделать.
Таблица с примером
Привет! Запрос в QUERY — текстовая строка и поэтому его всегда можно сформировать формулой.
Представьте — в ваших данных сто колонок и вы хотите написать запрос и вывести строки, в которых каждая ячейка будет больше 0.
Можно перечислить все сто колонок руками:
WHERE Col1>0 and Col2>0 and ColN>0 and Col100>0
, а можно написать формулу, которая создаст эту текстовую строку.На скриншоте показываем, как это сделать.
Таблица с примером
🔥3👍1
OR / AND в функции FILTER
Друзья, в FILTER можно комбинировать логические условия OR и AND. Для этого нужно сделать следующее:
1) Взять каждое условие в круглые скобки
2) Соединить условия разделителем:
OR (ИЛИ):
Примеры — на скриншоте
Таблица с примером
Друзья, в FILTER можно комбинировать логические условия OR и AND. Для этого нужно сделать следующее:
1) Взять каждое условие в круглые скобки
2) Соединить условия разделителем:
OR (ИЛИ):
+
AND (И): *
или ;
или ,
(в зависимости от региональных настроек разделителем может выступать точка с запятой или запятая; звездочка будет работать при любых настройках)Примеры — на скриншоте
Таблица с примером
👍10
Вывод названия месяца из даты в именительном падеже
—
—
— Формула сможет работать в
Другие способы из нашего чата:
Второй способ,
https://tttttt.me/google_spreadsheets_chat/62466
Третий способ,
https://tttttt.me/google_spreadsheets_chat/62520
Четвертый способ,
https://tttttt.me/google_spreadsheets_chat/62470
Спасибо @oshliaer и @IT_sAdmin за помощь в подготовке поста 🤗
Наш чат: @google_spreadsheets_chat
—
МЕСЯЦ/MONTH
возвращает номер месяца (от 1 до 12) на который выпадает заданная дата—
ВЫБОР/CHOOSE
достает из списка с названиями месяца значение по индексу— Формула сможет работать в
ARRAYFORMULA
, сразу для многих ячеек (см. скриншот, там диапазон A1:A10)Другие способы из нашего чата:
Второй способ,
IFS
:https://tttttt.me/google_spreadsheets_chat/62466
Третий способ,
ВПР
:https://tttttt.me/google_spreadsheets_chat/62520
Четвертый способ,
INDEX
, но без ARRAYFORMULA
:https://tttttt.me/google_spreadsheets_chat/62470
Спасибо @oshliaer и @IT_sAdmin за помощь в подготовке поста 🤗
Наш чат: @google_spreadsheets_chat
👍3
Друзья, подписчик нашего канала создал Таблицу для учета своих активов и написал про это статью.
Вводная от меня. Основа его Таблицы — функция
Таким образом вы всегда сможете собирать нужные вам котировки и другую информацию без скриптов / интеграции с АПИ.
Кстати, скриптами это делать даже сложнее — чтобы обычный parsexml из скрипта проглотил сайт, html нужно сначала обработать, экранировать экранируемое, с тегами порядок навести, с кавычками, etc.
Так что разбирайтесь, как писать xpath и пользуйтесь этой мощной функцией.
Статья: https://vc.ru/finance/92990-upravlencheskiy-uchet-lichnyh-aktivov
Таблица с портфелем: https://clck.ru/K9CLT
Вводная от меня. Основа его Таблицы — функция
IMPORTXML
, она позволяет вытаскивать почти любую строку из веб-страницы, вам нужно только научиться писать xpath запрос. Таким образом вы всегда сможете собирать нужные вам котировки и другую информацию без скриптов / интеграции с АПИ.
Кстати, скриптами это делать даже сложнее — чтобы обычный parsexml из скрипта проглотил сайт, html нужно сначала обработать, экранировать экранируемое, с тегами порядок навести, с кавычками, etc.
Так что разбирайтесь, как писать xpath и пользуйтесь этой мощной функцией.
Статья: https://vc.ru/finance/92990-upravlencheskiy-uchet-lichnyh-aktivov
Таблица с портфелем: https://clck.ru/K9CLT
vc.ru
Управленческий учет личных активов 📊 — Финансы на vc.ru
Хочу поделиться собственной историей учета инвестиций и личных активов. В этой истории, которая длится и по сей день, — инвестиции присутствуют постоянно, но способ их учета меняется, потому что пытаюсь сделать его адекватным текущему моменту времени.
❤1
Forwarded from Eugeny Namokonov
Налетай, скрипты покупай
Наша артель уже четыре года пишет скрипты для Google Таблиц, Документов и Диска.
С помощью скриптов и нашей магии можно сделать что угодно. ВОТ СОВСЕМ.
Например, открываем Excel файл на вашем диске, превращаем в Таблицу, форматируем, конвертируем в текстовый файл, отправляем по почте, сохраняем на Google Диск и делаем post-запрос одновременно. Это реально и мы это делали.
Что еще делали
✔ выгружали письма из gmail ящика и использовали их, чтобы создать в календаре события (Маша З, 30 ноября, делаем ноготочки)
✔ все виды конвертаций файлов на вашем диске
✔ реестр файлов диска и смена прав доступа к файлам через интерфейс Таблицы (уберите сотрудника из всех файлов разом)
✔ интеграции со внешними API, забираем остатки, продажи и вставляем в Таблицу
Итак, мы можем реализовать для вашего бизнеса любой алгоритм и заставить его выполняться автоматически в облаке. Время сотрудника освободится для более важных дел.
Дорого. Эффективно.
За скриптами писать сюда: @namokonov
Наша артель уже четыре года пишет скрипты для Google Таблиц, Документов и Диска.
С помощью скриптов и нашей магии можно сделать что угодно. ВОТ СОВСЕМ.
Например, открываем Excel файл на вашем диске, превращаем в Таблицу, форматируем, конвертируем в текстовый файл, отправляем по почте, сохраняем на Google Диск и делаем post-запрос одновременно. Это реально и мы это делали.
Что еще делали
✔ выгружали письма из gmail ящика и использовали их, чтобы создать в календаре события (Маша З, 30 ноября, делаем ноготочки)
✔ все виды конвертаций файлов на вашем диске
✔ реестр файлов диска и смена прав доступа к файлам через интерфейс Таблицы (уберите сотрудника из всех файлов разом)
✔ интеграции со внешними API, забираем остатки, продажи и вставляем в Таблицу
Итак, мы можем реализовать для вашего бизнеса любой алгоритм и заставить его выполняться автоматически в облаке. Время сотрудника освободится для более важных дел.
Дорого. Эффективно.
За скриптами писать сюда: @namokonov
Решили в чате отличный кейс: добавляем ячейку с любым текстом после каждой ячейки нашего массива.
В примере (таблица с ним) после каждой ячейки добавляем новую со словом «СТРОКА».
Формула по шагам разобрана на скриншоте.
Итоговая формула:
Наш стремительный чат: @google_spreadsheets_chat,
Спешите, в нём скоро закончится место, нас там почти 1500 🤗
В примере (таблица с ним) после каждой ячейки добавляем новую со словом «СТРОКА».
Формула по шагам разобрана на скриншоте.
Итоговая формула:
=TRANSPOSE(SPLIT(JOIN("vasyaСТРОКАvasya";A5:A8);"vasya";0))
Наш стремительный чат: @google_spreadsheets_chat,
Спешите, в нём скоро закончится место, нас там почти 1500 🤗
👍2
Пользовательские форматы для номеров телефонов
Чтобы отображать телефонные номера, введенные просто как последовательность цифр, в нормальном виде - нужны пользовательские форматы.
Давайте посмотрим, как ими воспользоваться.
Формат (Alt+O) -> Числа (N) -> Другие форматы - > Другие форматы чисел
А дальше можно вводить формат. В самом простом виде просто вводим нули для цифр и знаки, которые хотим отображать:
0(000)000-00-00
Но такой формат не будет работать для номеров вида 9101234567, 1234567.
Только для 79161234567 или 89161234567.
Поэтому можно пойти дальше и вспомнить, что есть возможность задавать условия в пользовательских форматах.
Так, можно предусмотреть отдельный формат для чисел меньше 9999999 - без кода:
Такой вариант корректно отобразит и номера из 11 цифр, и номера из 7.
Но все еще не справится с номером из 10 цифр - как 9101234567.
Так что можно сделать еще один шаг и прописать два условия:
Файл с примером
Чтобы отображать телефонные номера, введенные просто как последовательность цифр, в нормальном виде - нужны пользовательские форматы.
Давайте посмотрим, как ими воспользоваться.
Формат (Alt+O) -> Числа (N) -> Другие форматы - > Другие форматы чисел
А дальше можно вводить формат. В самом простом виде просто вводим нули для цифр и знаки, которые хотим отображать:
0(000)000-00-00
Но такой формат не будет работать для номеров вида 9101234567, 1234567.
Только для 79161234567 или 89161234567.
Поэтому можно пойти дальше и вспомнить, что есть возможность задавать условия в пользовательских форматах.
Так, можно предусмотреть отдельный формат для чисел меньше 9999999 - без кода:
[<9999999]000-00-00;0(000)000-00-00
Такой вариант корректно отобразит и номера из 11 цифр, и номера из 7.
Но все еще не справится с номером из 10 цифр - как 9101234567.
Так что можно сделать еще один шаг и прописать два условия:
[<9999999]000-00-00; [<10000000000](000)000-00-00; 0(000)000-00-00
Теперь у нас предусмотрены три варианта.Файл с примером
❤1
Добавляем к QUERY итоги
Функция QUERY не умеет добавлять итоги по строкам / столбцам к данным, которые выводятся.
Зато, вы можете написать несколько QUERY: одну для вывода запроса, другие для вывода итогов и объединить все эти функции в один массив.
Подробно про объединение массивов мы писали здесь.
В результате вы получите одну формулу и эта формула будет выводить всё.
Примеры формул, QUERY с итогами по столбцам:
QUERY с итогами по столбцам, строкам и общей суммой:
Подробный разбор - на скриншоте.
Таблица с примером
Функция QUERY не умеет добавлять итоги по строкам / столбцам к данным, которые выводятся.
Зато, вы можете написать несколько QUERY: одну для вывода запроса, другие для вывода итогов и объединить все эти функции в один массив.
Подробно про объединение массивов мы писали здесь.
В результате вы получите одну формулу и эта формула будет выводить всё.
Примеры формул, QUERY с итогами по столбцам:
={
QUERY(B3:D11;"SELECT B, SUM(D) GROUP BY B PIVOT C");
TRANSPOSE( QUERY(B3:D11;"SELECT SUM(D) GROUP BY C"))
}
QUERY с итогами по столбцам, строкам и общей суммой:
={
{ QUERY(B3:D11;"SELECT B, SUM(D) GROUP BY B PIVOT C");TRANSPOSE( QUERY(B3:D11;"SELECT SUM(D) GROUP BY C")) }\
{ QUERY(B3:D11;"SELECT SUM(D) GROUP BY B");QUERY(B3:D11;"SELECT SUM(D) label SUM(D) ''") }
}
Подробный разбор - на скриншоте.
Таблица с примером
👍3❤1
Сегодня два кейса.
У нас есть ряд чисел от 0 до 1231, как посчитать одной формулой количество чётных элементов?
Разбор — на скриншоте и в Таблице.
Итоговая формула:
Мы выбрали любой месяц, как посчитать в нем количество суббот?
Разбор — на скриншоте и в Таблице.
Итоговая формула:
Таблица с примером
У нас есть ряд чисел от 0 до 1231, как посчитать одной формулой количество чётных элементов?
Разбор — на скриншоте и в Таблице.
Итоговая формула:
=COUNTIF( ARRAYFORMULA( ISEVEN(SEQUENCE(1232;1;0)));true)
Мы выбрали любой месяц, как посчитать в нем количество суббот?
Разбор — на скриншоте и в Таблице.
Итоговая формула:
=COUNTIF( ARRAYFORMULA( WEEKDAY(SEQUENCE(DAY( EOMONTH(I1241;0) );1;I1241);2))
Таблица с примером
Пользовательские форматы: округление до тысяч и миллионов
Продолжим исследовать бездонный мир пользовательских форматов и сегодня поговорим про округление.
Достаточно одной запятой в конце числового формата, чтобы округлить число до тысяч:
Если хочется отображать в тысячах с десятыми/сотыми/прочими долями тысячи, можно добавить знаки после запятой:
Сработает округление и для форматов с разделителями разрядов:
(То есть мы будем показывать число в тысячах, но если округленный результат будет иметь больше 10 тыс. - то в нем появятся разделители разрядов)
Можно добавить надпись после числа - чтобы не запутаться и точно понимать, что здесь числа в тысячах:
Помня о том, что мы можем задавать отдельные форматы (через точку с запятой) для положительных и отрицательных чисел, можно задать формат с округлением для положительных чисел, а отрицательные показывать в обычном формате:
И, конечно, можно пойти дальше и отображать число в миллионах или миллиардах:
#,##0,, - миллионы с разделителями разрядов
0,,, - миллиарды без разделителей разрядов
Файл с примерами
Продолжим исследовать бездонный мир пользовательских форматов и сегодня поговорим про округление.
Достаточно одной запятой в конце числового формата, чтобы округлить число до тысяч:
0,
Если хочется отображать в тысячах с десятыми/сотыми/прочими долями тысячи, можно добавить знаки после запятой:
0.00,
Сработает округление и для форматов с разделителями разрядов:
#,##0,
(То есть мы будем показывать число в тысячах, но если округленный результат будет иметь больше 10 тыс. - то в нем появятся разделители разрядов)
Можно добавить надпись после числа - чтобы не запутаться и точно понимать, что здесь числа в тысячах:
#,##0, тыс
Помня о том, что мы можем задавать отдельные форматы (через точку с запятой) для положительных и отрицательных чисел, можно задать формат с округлением для положительных чисел, а отрицательные показывать в обычном формате:
#,##0,;#,##0
И, конечно, можно пойти дальше и отображать число в миллионах или миллиардах:
#,##0,, - миллионы с разделителями разрядов
0,,, - миллиарды без разделителей разрядов
Файл с примерами
❤1
Скрипт: создаем каталог из файлов выбранной папки в Google Таблице. Google Drive Api.
Как работает:
1) вам нужно сделать копию таблицы
2) ввести в ячейку «B1» ID папки
3) запустить из меню [ с к р и п т ы ] единственный скрипт
Скрипт рекурсивный, он будет искать в папке, во вложенных папках, а также покажет все случаи, когда файл, находящийся в папке одновременно лежит еще где-то, на Google Drive это возможно.
Как работает:
1) вам нужно сделать копию таблицы
2) ввести в ячейку «B1» ID папки
3) запустить из меню [ с к р и п т ы ] единственный скрипт
Скрипт рекурсивный, он будет искать в папке, во вложенных папках, а также покажет все случаи, когда файл, находящийся в папке одновременно лежит еще где-то, на Google Drive это возможно.
❤2
Превращаем Таблицы в полноценное приложение:
Планировщик для занятий в тренажерном зале от нашего подписчика
Друзья, сегодня отличный пример того, что на базе бесплатных Google Таблиц можно собрать что угодно. Ниже — пост от нашего подписчика, он сделал планировщик для занятий в тренажёрном зале. Занятия заносятся из связанного выпадающего списка по группам, а на листе «как выполнять» можно посмотреть фото и видео выбранного занятия, они будут загружаться с помощью прекрасной функции
Передаем слово @akunilovskiy:
Те, кто хотят добиться результатов в тренажерном зале знают, что тренировки нужно планировать, а результаты записывать. Когда я решил делать это с помощью смартфона я попробовал несколько приложений для Android, но ни одно не показалось удобным.
Мне нужны были: легко доступная история тренировок, быстрое составление плана тренировки (в т.ч. на основе предыдущих) и, желательно, не только посредством экрана мобильного устройства, широкий выбор упражнений или возможность добавлять свои.
В итоге я сделал журнал/планировщик тренировок с нужным мне функционалом на базе Google Таблиц.
Поскольку результат меня устраивает, то я решил им поделиться с подписчиками канала и чата Google Таблицы.
Если при использовании возникнут вопросы, предложения - можете задать их в группе: https://tttttt.me/workoutplanner
1. Текущая версия планировщика/журнала тренировок.
2. Инструкция.
Планировщик для занятий в тренажерном зале от нашего подписчика
Друзья, сегодня отличный пример того, что на базе бесплатных Google Таблиц можно собрать что угодно. Ниже — пост от нашего подписчика, он сделал планировщик для занятий в тренажёрном зале. Занятия заносятся из связанного выпадающего списка по группам, а на листе «как выполнять» можно посмотреть фото и видео выбранного занятия, они будут загружаться с помощью прекрасной функции
=IMPORTXML
.Передаем слово @akunilovskiy:
Те, кто хотят добиться результатов в тренажерном зале знают, что тренировки нужно планировать, а результаты записывать. Когда я решил делать это с помощью смартфона я попробовал несколько приложений для Android, но ни одно не показалось удобным.
Мне нужны были: легко доступная история тренировок, быстрое составление плана тренировки (в т.ч. на основе предыдущих) и, желательно, не только посредством экрана мобильного устройства, широкий выбор упражнений или возможность добавлять свои.
В итоге я сделал журнал/планировщик тренировок с нужным мне функционалом на базе Google Таблиц.
Поскольку результат меня устраивает, то я решил им поделиться с подписчиками канала и чата Google Таблицы.
Если при использовании возникнут вопросы, предложения - можете задать их в группе: https://tttttt.me/workoutplanner
1. Текущая версия планировщика/журнала тренировок.
2. Инструкция.
👍4❤2
Дорогие читатели! Сегодня мы хотим поблагодарить вас за внимание к нашему каналу. Надеемся, он был полезен вам в работе в этом году.
И отдельное спасибо тем, кто присылал нам свои решения, мы начислили вам +10 кармы в чате за каждый опубликованный пост:
@mike59 (+30 кармы), целых три поста:
— Изменяем наш Google Calendar с помощью скриптов
— Скрипт для работы с Google Календарем. Напоминалка про дни рождения
— Таблица для учета своих активов
@mildly_disastrous (+20 кармы):
— Прочитаем, что написано на стикерах. OCR в Google Docs
— Важный скрипт. Связанные выпадающие списки из кэша
— Перемещение мебели
@IT_sAdmin (+10 кармы):
— Вывод названия месяца из даты в именительном падеже
@IT_sAdmin, @mrykin, @avazbek88, Макс Махров (всем по +10)
— База знаний регулярных выражений для REGEXEXTRACT
@akunilovskiy (+10)
— Планировщик для занятий в тренажерном зале
Друзья, будут новые идеи — пишите @namokonov, @renat_shagabutdinov
И отдельное спасибо тем, кто присылал нам свои решения, мы начислили вам +10 кармы в чате за каждый опубликованный пост:
@mike59 (+30 кармы), целых три поста:
— Изменяем наш Google Calendar с помощью скриптов
— Скрипт для работы с Google Календарем. Напоминалка про дни рождения
— Таблица для учета своих активов
@mildly_disastrous (+20 кармы):
— Прочитаем, что написано на стикерах. OCR в Google Docs
— Важный скрипт. Связанные выпадающие списки из кэша
— Перемещение мебели
@IT_sAdmin (+10 кармы):
— Вывод названия месяца из даты в именительном падеже
@IT_sAdmin, @mrykin, @avazbek88, Макс Махров (всем по +10)
— База знаний регулярных выражений для REGEXEXTRACT
@akunilovskiy (+10)
— Планировщик для занятий в тренажерном зале
Друзья, будут новые идеи — пишите @namokonov, @renat_shagabutdinov
👍3❤1