Функция Query и сумма SUM по значению в Гугл таблицах
Есть таблица с данными. В моём примере — это список задач по дням с затраченным на них временем. Задача → получить сумму потраченного за сегодня времени на задачи, чтобы каждый раз не суммировать интервал.
Если вам такое отслеживание времени покажется странным, почитайте мою статью про это. Я использовал разные методы, но Гугл таблицы оказались самыми удобными.
На скрине выше я выделил тот интервал, который нужно просуммировать и получить в ячейке Е2. При том условии, что сегодня дата 16.05.2022.
Кажется никакой автоматизации тут не нужно и можно просто выделить нужный интервал и получить значение потраченного на задачи времени, но строк может быть много да и вообще не удобно каждый раз выделять интервал. Хочется посмотреть в одну ячейку и сразу понять ,сколько сегодня времени уже потрачено на задачи.
Функция QUERY и SQL запрос SUM
Посчитать сумму по необходимому значению можно по разному. Например, с помощью функции IF где мы говорим, проверь ячейку А и если там дата TODAY(), сложи с прочими такими же совпадениями. Но получится очень длинная формула и при добавлении новых строк она сломается.
Поэтому я использовал функцию query позволяющую работать с sql запросами.
Формула записана в ячейке Е1.
Приведу формулу тут и разберу её на атомы:
=query(A3:E19;"select sum(E) where A = date'"&TEXT(TODAY();"yyyy-mm-dd")&"'")
Итак, функция вызывается с помощью QUERY. Официальная справка тут. Далее мы указываем интервал с данными — тут всё просто.
Вторым аргументом идёт sql запрос и в нём самое интересное.
Говоря простым языком, мы говорим выведи сумму потраченного времени из столбца Е только по сегодняшним датам.
Возможные ошибки
Проверяйте, чтобы первый столбец с датам имел формат именно дат, иначе если там будут текстовые значения, то sql запрос упростится и нужно будет просто вывести “А = ‘16.05.2022’ “.
Просто и классно, спасибо!
Спасибо)