Сообщество - MS, Libreoffice & Google docs

MS, Libreoffice & Google docs

762 поста 14 933 подписчика

Популярные теги в сообществе:

26

Таскотрекер на базе ГТ и ТЛГ Часть 1 (GS13)

Привет, дорогие чатлане.

Одновременно с мануалом по таблицам запускаю еще одну серию постов. Это больше похоже на дневник разработчика. Буду стараться делиться своими мыслями, проблемами и способами решения, которые я нашел + мб в комментах будут советы и идеи, тоже добавлю их.

Какая передо мной стоит задача.

Нужно сделать таск трекер, который будет максимально упрощать жизнь мою и моих коллег.

Часть 0 - вместо ТЗ.

Какие вводные есть:

- Компания полностью живет на ГТ + пара крупных сервисов для клиентской базы, в табличках каждый сотрудник что-то делает почти каждый день.

- Коммуникации проходят преимущественно в тлг, опять же, если это не касается клиентов, там все чин по чину в СРМ.

- Все используют гугл календарь

- У нас недовнедренный SCRUM. Внедрено понятие спринтоварения как цикличного отрезка времени. Сейчас он длится неделю. Внедрено понятие беклога и его приоритизации. Оценки работы в виде стори поинтов нет, должности ПО или скрам-мастера нет, этот функционал размазан, хотя понимания этих ролей есть и есть понимание где именно страдаем и на что нужно обращать внимание при постановке задач.

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

- КПИ привязаны к % выполнения задач за спринт + почасовка, которая трекается телеграм-ботом.

- Разные заказчики, нужно учитывать постановщика задачи.

Что хочется сделать:

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

- Дневные планы, которые будут каждое утро отправляться сотруднику в тлг

- Автоматическую постановку встреч

- Нотифаи в случае наступления даты начала задачи (для отложенных)

- Автоматический подсчёт ЗП исходя из почасовки и КПИ

- Полезности в виде статистики, метрик, свободного времени на неделе.

- Добавление и изменение задачи из тлг. В идеале сотрудник должен жить только в тлг, а гт использовать только как бекенд.

- Сделать регулярные задачи и нативный ввод дедлайнов как в тудуисте.

- Отображение задач коллег, в которых ты являешься участником.

Что я могу сделать сходу, а чему нужно учиться:

Могу сходу почти все из списка (при достаточном количестве лубриканта), кроме:

- Автоматическую постановку встреч

- Сделать регулярные задачи и нативный ввод дедлайнов как в тудуисте.

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


Часть первая - тайм-трекинг.

Чтобы добавить информативности посту расскажу о том, как устроен у нас тайм-трекинг.

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

Как это устроено?

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

Даты, Логина, Текста.

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

В итоге получаются записи в тлг типа:

лд обед
общ почта разбор
база прозвон

и т.д.

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

После всех настроек и обработок получаем примерно такой список:

Таскотрекер на базе ГТ и ТЛГ Часть 1 (GS13)

С помощью importrange() и d-функций (о них у меня есть пост) - на лист каждого сотрудника напротив каждой задачи мы можем получить итоговое время, которое было потрачено на задачу. С помощью importrange() и filter() - можем получить полный список записей, которые сотрудник делал по каждой задаче.

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


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

Показать полностью 1
38

Булева алгебра и логические выражения в гугл таблицах (GS12)

Привет, дорогие чатлане!

Сегодня рассмотрим логические выражения, булеву алгебру, функции if(), and(), or().

Сначала короткий экскурс в математическую подложку (пара слов про булеву алгебру и таблицы истинности).

Логическое выражение - конструкция, которая на входе имеет ряд аргументов и операций между ними, а на выходе - 0 или 1, т.е. ЛОЖЬ и ИСТИНА.

Пример логического выражения:

1+1 = 2 == 1  (Истина)

1+1 = 3 == 0 (Ложь)

[1+1 = 2] или [1+1 = 3] == 1 (Истина) - т.к. одно из выражений (первое) - является истиной, то вся конструкция является Истиной.

[1+1 = 2] и [1+1 = 3] == 0 (Ложь) - т.к. по крайней мере одно выражение (второе) - является ложным, то вся конструкция является ложной.

По своей сути оператор ИЛИ очень похож по своему поведению на сложение, а оператор И - на умножение.

Таблица истинности - это конструкция, которая позволяет определить различные исходы логического выражения для различных значений аргументов. Например у нас есть логическое выражение: a или  b, при этом и a и b могут быть и истиной и ложью. Тогда таблица истинности будет выглядеть следующим образом:

Для выражения a и b - следующим образом:

Как это нам поможет в гугл таблицах?

Простой пример - нужно найти все отрицательные записи в реестре:

Функция IF проверяет условие. Далее, если оно истинно - срабатывает первая часть формулы, если нет - вторая. Чуть усложним, добавим проверку даты. Предположим нас интересуют только записи позже 1.01.2020:

И здесь мы видим как формула отрабатывает неправильно. 1/06/2020 явно больше чем 1/01/2020. Здесь вступает в силу нюанс с форматами. Если мы возьмем дату и отформатируем ее как число, то увидим следующее:

Каждая дата для ГТ это число. Поэтому в таблице выше мы сравниваем число с текстом. Чтобы этого избежать - мой совет - всегда выписывать даты с которыми идет сравнение, чтобы не вдаваться в детали с тем как именно нужно их записывать.

Теперь объединим оба условия (будет чуть коряво, но наглядно):

Либо в одну формулу:

Где еще нам это нужно?

В фильтрах.

Фильтры проверяют содержимое таблицы так же исходя из алгебры логики.

Функция filter() делает следующее - она берет каждую строчку таблицы и проверяет каждый столбец, который задал пользователь на соответствие условиям. Если ВСЕ условия выполняются - данная строка сохраняется. Если нет - то нет.

Пример с той же таблицей:

Этот же принцип заложен в функцию QUERY и вообще в подавляющее большинство работы с данными. Например условное форматирование. Покажу как логические выражения можно использовать там. Как раз в первом посте об этом писал:

Условное форматирование проверяет логическую конструкцию. Если она истина - она меняет формат ячейки (в данном случае она окрашивается в зеленый). Условное форматирование изначально было задано в ячейке D3 и логическое выражение =$F3="Низкая" смещается по ячейкам в рамках всей зоны условного форматирования.

Т.е. в ячейке Е3 для него формула: =$F3="Низкая"  потому что $F - зафиксирована, а вот в ячейке d5 формула будет =$F5="Низкая" и это уже является истиной, поэтому все ячейки этой строки залиты зеленым.


В относительно сложных формулах описанных в посте Фильтры и ВПРы в ГТ (GS2) так же все держится на логических конструкциях.

Показать полностью 11
112

Интерфейс гугл таблиц и полезные кнопки (GS11)

Привет, дорогие чатлане!

Второй пост из серии мануала по гугл таблицам. Первый можно найти тут: Вводный пост (GS10)

Т.к. изначальный посыл мануала "прокачать навыки до уровня аналитика", то рассматривать я буду не все кнопки, а только те, которыми лично я постоянно пользуюсь в работе. Это покроет абсолютное большинство бытовых запросов. Отдельно остановлюсь на некоторых функциях, которые лучше избегать и объясню почему.

В меню File нас интересует только одна настройка:

Вот это лучше отключать при работе с большими таблицами:

Это существенно повышает их быстродействие.

Во вкладке Insert сильно больше полезного.

В разделе Image можно провести вставку изображения внутрь ячейки. Относительно новая функция в гугл таблицах, была добавлена около года назад. Если изображение размещено где-то в интернете, то лучше использовать функцию:

Tick box - относительно полезная вставка, которая добавляет заполняемые галочки в таблицу. Из плюсов - галочки можно проставлять нажатием на пробел. Из минусов - их сложнее использовать в формулах. На фронте - смело используем, при обработке данных - стараемся избегать.

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

Из полезного - в комментариях можно назначить исполнителя и ему улетит уведомление на почту. Делается это при помощи +почта. Т.е. внутри комментария ставите плюс, дальше ГТ подгружает контактную книгу и можно выбрать исполнителя.

Остальные кнопки либо вынесены на панель, либо открывают дорогу к более продвинутым функциям (именованные диапазоны и своды), поэтому с менюшками - все, переходим к панели.

Офигительно полезная кнопка. Позволяет копировать формат (стиль ячейки) включая условное форматирование и применять в другом месте таблицы.

Ну и раз уж затронули тему копирования формата - нужно рассказать и про перенос значений:

Комбинация клавиш CTRL+C -> CTRL+SHIFT+V. Переносит ТОЛЬКО содержимое ячеек без формул. Понятие "прибить формулы" - означает выделить таблицу с формулами, нажать эту комбинацию клавиш без переноса. Т.о. все значения сохранятся, в формулы исчезнут. Полезно при больших таблицах, где есть лишние вычисления.

Эта часть посвящена формату данных. Убедительно прошу не использовать валюты. Никогда. Часто нужно копировать значения из ячеек и, при таком копировании, копируется и значок валюты и приходится руками это вычищать.

В остальном же - перевести дату в число или число в процент - это сюда. Про создание кастомных форматом и где это может быть полезно будет отдельный пост.

Шрифты и форматирование внешнего вида ячеек.

В гугл таблицах есть шикарные шрифты, которых нет в  Excel. Если любитель - советую покопаться. Lora - ванлав.

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

Правила размещения и переноса текста. Все как в ворде, кроме 3 кнопки. Она позволяет обрезать текст, переносить построчно или продолжать текст за границы ячейки.

Шорткаты для вставки ссылок, комментов и диаграмм. Фильтры же интереснее, о них чуть детальнее:

В ГТ есть два типа фильтров. Один - обычный, как в excel - добавляет в шапку таблицы возможность фильтровать данные. Но вот эта маленькая стрелочка справа открывает доступ к "Черным фильтрам". Разработчики гугла почему-то очень сильно их не любят. Не любят настолько, что это единственный объект в таблице, к которому нельзя обратиться из скриптов. Его тупо нет в документации.

В чем же прелесть "Черных фильтров"?

1 . Они отображаются только у вас, что позволяет нескольким пользователям смотреть разные фильтры.

2. Их можно называть и сохранять, а список сохраненных фильтров доступен всем.

По возможности - советую пользоваться именно ими.


Последняя кнопка - список всех функций.


Отдельно стоит сказать про интерактивную справку:

Она достаточно толковая.


С панелью разобрались, перейдем к разным полезностям.


Как зафиксировать N-первых строк или столбцов?

Классический вариант - через

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

Вот и все на сегодня, дорогие чатлане. На все вопросы в комментах отвечу. Если есть пожелания или критика- пишите, буду рад почитать. Отдельно хочу поблагодарить @Veseliy.4el, за развитие нашего табличного сообщества и активность в комментариях.

Ссылка на таблицу: https://docs.google.com/spreadsheets/d/1aQ24FqmAboP5MAijeU4A...

Показать полностью 14
57

Вводный пост (GS10)

Привет, дорогие чатлане!

В продолжение поста Мануал по гугл таблицам пилю вводный пост для мануала.

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

Ссылки на все посты и доки будут лежать здесь:

https://docs.google.com/spreadsheets/d/1fuDAXY-46blJOxLVqPMm...

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

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

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

Доки можно разделить на 3 части (особенно наглядно это можно увидеть в данном посте: Автоматически расширяющаяся таблица (GS9) )

1 Ввод данных - сюда входят парсеры, выгрузки, таблицы созданные вручную.

2 Обработка данных - сюда входят вычисления и обработки (можно назвать это бекендом)

3 Вывод данных - сюда входят итоговые отчеты, графики.

И тут первый совет - хорошей практикой является четкое разделение этих частей хотя бы в рамках листов. В отдельных случаях (напр., если нужно ограничить доступ или разгрузить лагающие доки) - можно разделить и по докам и перетягивать данные между таблицами при помощи функции importrange(). О ней еще отдельно подробно поговорим.

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

Возможно объяснил сложно, поэтому покажу на примере хороший и плохой вариант.

Настройки условного форматирования для таблицы справа (о настройках так же будет пост):

Совет третий - для 1 и 2 части не использовать объединение ячеек.

При объединенных ячейках перестают работать своды. Старайтесь использовать объединение только на лицевых листах для упрощения читабельности.

Совет четвертый - всегда сначала придумывайте шапку таблицы (названия строк и заголовков) и используйте уникальные названия (это нужно для d - функций и именованных диапазонов).

Совет пятый - переключите гугл таблицы на английский язык. Там проще синтаксис. Можно использовать запятую вместе точки с запятой, не нужно переключаться между раскладками при написании функций, которые не переведены на русский (filter, querry, unique и т.д.). Как это сделать - инфа тут: https://support.google.com/accounts/answer/32047?co=GENIE.Platform=Desktop&hl=ru


Небольшое послесловие.

Если у читателя возникли затруднения - он может всегда связаться со мной в тлг: ottodice.

Показать полностью 3
62

Как в Excel работать  с периодами

Есть такая проблема. Имеются данные каждый час до конца 2025 года(на примере их гораздо меньше,было для наглядности). Имеются значения, которые каждый час снимаются. Иногда надо узнать среднее значение за определенный период. Как сделать что бы вводя в ячейки определенные даты и время высчитывалось среднее значение за этот период. Облазив интернет подобного не нашел. А очень надо и думаю что могим было бы интересно. После того как узнаю запилю пост о способе. Комментарий для минусов внутри.Плюс был бы благодарен если бы кто то подсказал как дать понятие еселю что направление потока отсутствует (грубо говоря штиль), а среднее значение надо именно среди чисел, так как бывает что поток отсутствует по несколько часов пока отсутствует сырье.

Как в Excel работать  с периодами
738

Мануал по гугл таблицам

Привет, дорогие чатлане!

В конце весны я пилил похожий опросо-пост спрашивая вас - нужно ли писать пост о фичах в гугл таблицах. Сейчас хочу спросить обратное - будет ли аудитория на детальные мануалы относительно базовых вещей. Проще говоря серия постов, благодаря которым можно будет с нуля освоиться в гугл таблиц вплоть до уровня аналитика, который этим себе зарабатывает на хлеб.


Немного информации о том, что считается базовым уровнем (по крайней мере у нас в компании):

1. Показать пару вариантов применения функции ВПР, где 4 параметром задано значение 1 (TRUE) и знать за что этот  параметр отвечает.

2. В записи "Стар Стафф" за одну формулу поменять местами слова и получить "Стафф Стар".

3. Построить сводную таблицу на основании данных из нескольких других таблиц (технически это отдельные доки).

4. Подсветить названия строк, в которых есть хотя бы одно отрицательное значение.


Н.Б. Сейчас речь не идет о широком использовании этих кейсов или вопросов типа "А где мне пригодиться это в быту?". Речь идет только о технических знаниях. Если дорогой чатланин знает техническую часть - скорее всего он найдет где это ему нужно и сможет применить на практике.

Показать полностью
186

Автоматически расширяющаяся таблица (GS9)

Привет, дорогие чатлане!

Сегодня немного наркомании, но эта штука мне сильно пригодилась когда мне нужно было собрать по 70 параметров по 100+ клиентам компании.

Задача следующая - у нас есть много позиций (клиентов, товаров, поставщиков, фильмов) и мы не знаем заранее сколько у них будет параметров и, что самое главное, мы не хотим при вводе данных каждый раз заходить в большую доку, искать пересечение строки с наименованием со столбцом с параметром + мы хотим смотреть историю, как эта таблица выглядела в тот или иной момент времени.

Нам потребуется три листа.

1 - реестр

2 - промежуточный свод

3 - итоговая таблица

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

Реестр у нас должен выглядеть следующим образом:

Т.к. в ГТ отсутствуют умные таблицы из экселя, то нумератор (столбец A) автоматизируем своими руками.

Сделаем несколько тестовых записей:

Теперь нам нужен свод, где будут строки с названиями фильмов (столбец С), столбцы - параметры (столбец D) и на их пересечении - максимальное значение из столбца А.

Так выглядят настройки сводной таблицы.

Н.Б. Создание сводной таблицы - выделить таблицу с исходными данными, потом нажать Данные / Сводная таблица (Data / Pivot Table). Создавать лучше на новом листе.


Этот свод будет выполнять роль подложки. Здесь же с помощью фильтром мы можем фильтровать по дате.

Теперь же нужна лицевая сторона этой таблички. Тут все просто - нам нужен ВПР данных из реестра по данным из свода.


Н.Б. Если мы пишем на одном листе (Лист1) формулу, которая будет ссылаться на ячейки из другого листа (Лист2), то при копировании формулы в соседние ячейки - ссылка так же будет двигаться.


Шаг первый - копируем первый столбец из свода.

Фигурные скобки означают массив данных. Т.е. написав формулу только в ячейке А1 - данные автоматом будут протягиваться ниже, в т.ч. и при изменении данных в исходном массиве.

Аналогично переносим верхнюю шапку.

Шаг второй - прописываем ВПРы и копируем их на всю таблицу.

Н.Б. Таблица 'Реестр'!A:E написана с абсолютными ссылками. Т.о. при копировании эта часть формулы не будет изменяться.

Промежуточный вид таблицы.

Чтобы убрать ошибки при пустых значениях используем функцию ЕСЛИОШИБКА() (iferror()).

Это финальный вид. Если добавить еще какой-то фильм или новый параметр к существующему - он появится автоматически.

Ссылка на таблицу: https://docs.google.com/spreadsheets/d/1GXVINvbZly6TVXIz2Hwk...

Показать полностью 11

Как быстро создать папку в Windows и macOS

Работая на компьютере, часто создаете папки, тогда пост для вас. Экономим пару часов жизни.

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

Чтобы быстро создать папку на Windows нажмите сочетание клавиш Ctrl + Shift + N.

Для изменения названия папки выделите её и нажмите F2, активируется поле имени файла.

Вызвать контекстное меню, не используя п.к.м, можно клавишей ≣ Menu на клавиатуре, при её наличии. Далее, в меню, при помощи стрелок клавиатуры, выберите нужную команду.

Для создания папки на Mac нажмите: ⌘ Command + ⌃ Control + N.

Показать полностью 2
Отличная работа, все прочитано!