Найти в Дзене

Делаем табель в гугл таблицах за несколько минут

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

Нам потребуется функция SEQUENCE и условное форматирование. Добавим в колонку B1 дату, для какого месяца мы делаем табель. А в B3 у нас будет формула SEQUENCE. Для начала, разберемся, как работает эта формула. Первым аргументом у нее идет количество строк, а вторым - количество столбцов, которые нужно вывести. Третий аргумент - первый элемент последовательности, а последний, четвертый аргумент - шаг последовательности. Кстати, все аргументы, кроме первого являются необязательными.

Чем это нам поможет? Тем, что дата хранится в гугл таблицах (и в Экселе тоже) как число. Можно легко проверить: введем в ячейке B3 формулу:

=SEQUENCE(1;10;$B$1)

И видим результат: последовательность каких-то непонятных чисел. Которые становятся гораздо более осмысленными, если к ним применить формат "Дата":

Мы вывели 10 чисел, начиная с даты в ячейке B2. Но нам нужен целый месяц. И в ячейке B2 может не обязательно будет первое число месяца, а табель нужно выводить начиная с первого числа. Допишем формулу:

= SEQUENCE ( 1 ; EOMONTH ( $B$1 ; 0 ) - DATE ( YEAR ( $B$1 ) ; MONTH ( $B$1 ) ; 1 ) + 1 ; DATE( YEAR ( $B$1 ) ; MONTH ( $B$1 ) ; 1 ) )

Функция EOMONTH возвращает последнее число месяца от указанной даты, таким образом второй аргумент функции SEQUENCE у нас ровно число дней в месяце, указаном в B1, а третий аргумент - первое число месяца.

В колонке A3:A50 укажем текущие проекты. Их можно выбирать с помощьюд выпадающего списка (Данные -> Проверка данных).

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

Формулы для правил:

  1. =and($A3<>"";weekday(A$3;2)>5;iseven(row(A3)))
  2. =and($A3<>"";weekday(A$3;2)>5)
  3. =and(iseven(row(A3));$A3<>"")

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

Наконец, финальный штрих, закрепим первый столбец (с проектами):

-3

И итоговый результат:

-4

При этом табель меняется динамически при вводе новой даты в поле B1.

Как всегда, готовый файл доступен по ссылке: https://docs.google.com/spreadsheets/d/1kIsRxr_A0MfBpsLw7ziurs2tjdnhihtip263p3owlX4/edit?usp=sharing