Примеры часто используемых формул Permalink
Это руководство содержит практические примеры формул, которые помогут рассчитывать затраты, объединять значения, измерять время, применять условия и упорядочивать данные задач в Quire. Каждый пример показывает, как формулы превращают необработанные данные задач в полезные результаты.
Расчёт затрат
Чтобы рассчитать общую стоимость задачи и всех её подзадач, понадобятся два пользовательских поля:
- Создайте пользовательское поле Cost.
- Тип поля: Number
- Знаки после запятой: 2
- Создайте пользовательское поле Total Cost.
- Тип поля: Formula
- Введите следующую формулу:
SUM(subtasks.{Total Cost}, Cost)
Эта формула прибавляет собственную стоимость задачи к суммарной стоимости всех её подзадач.
Ознакомьтесь со всеми доступными функциями для использования в формулах Quire.
Отображение нескольких значений в одном поле
С помощью формулы массива можно отображать или вычислять сразу несколько значений. Массив — это набор элементов, например задач, чисел или текстовых значений.
Пример: отображение конкретных задач в одном поле
[#2, #23]
Возвращает указанные задачи в виде списка.
Совет: задачи можно указывать с помощью идентификатора задачи #task_ID в формуле.
Вычисления с массивами
Формулы массивов позволяют применять одну и ту же операцию к нескольким элементам одновременно.
Пример: получение дат выполнения для нескольких задач
[#2, #23].due
Это эквивалентно:
[#2.due, #23.due]
Использование массивов сокращает повторения и улучшает читаемость формул.
Узнайте больше о формулах массивов Quire, которые позволяют перечислять или выполнять вычисления над наборами данных.
Расчёт продолжительности
Продолжительность между двумя датами можно вычислять в разных единицах.
Пример: расчёт продолжительности в днях
(due - start).days
Возвращает количество дней между датой начала и датой выполнения.
Примечание: результат округляется в большую сторону до целого числа (наименьшее целое, большее или равное фактическому значению). Например, продолжительность в один час будет считаться одним днём.
Точная продолжительность
Для более точных результатов можно скорректировать формулу.
Пример: перевод часов в дни
(due - start).hours / 24
Извлечение компонентов даты
Из поля даты можно извлекать отдельные составляющие, например:
- Год
- Месяц
- День
- Час
- Минута
- Секунда
- День недели
Пример: получение дня недели даты выполнения
due.weekday
Примечание: день недели возвращается в числовом формате: 1 = понедельник, 2 = вторник и так далее.
Расчёт рабочих дней
Используйте функцию WORKDAYS для подсчёта рабочих дней между двумя датами.
WORKDAYS(start, due)
Если дата начала и дата выполнения совпадают, результат равен 1 дню.
Использование сегодняшней даты
Пример:
WORKDAYS(<today>, <tomorrow>)
Возвращает 2 дня.
Настройка выходных дней
Можно задать, какие дни считаются выходными.
WORKDAYS(start, due, weekend)
Замените weekend одним из следующих значений:
| Код выходных | Дни, считающиеся выходными |
|---|---|
| 1 | Сб, Вс |
| 2 | Вс, Пн |
| 7 | Пт, Сб |
| 9 | Пт, Вс |
| 11 | Вс |
| 16 | Пт |
Условная логика
С помощью условного оператора ?: можно возвращать разные результаты в зависимости от условия — принцип работы аналогичен оператору IF.
Задаётся два результата: первый отображается, если условие истинно, второй — если ложно.
Пример: отображение индикаторов статуса на основе потраченного времени (когда суммарное время, затраченное на задачу, превышает 5 часов)
timeSpent > 5h ? "🔴" : "🟢"
- Условие:
timeSpent > 5h - Результат при истинном значении: 🔴
- Результат при ложном значении: 🟢
Сортировка и упорядочивание значений
Используйте функцию SORT для сортировки значений по возрастанию.
Например, если у вас 4 подзадачи с датами выполнения 1 сент., 23 авг., 1 сент. и 30 июля соответственно:
SORT(subtasks.due)
Результат: даты выполнения подзадач будут отсортированы от ранней к поздней и перечислены в поле.
Jul 30, Aug 23, Sep 1, Sep 1
Удаление дубликатов
Объедините SORT с функцией DISTINCT.
Как видно из результата, две подзадачи имеют одинаковую дату выполнения (1 сент.). Попробуйте:
DISTINCT(SORT(subtasks.due))
Результат:
Jul 30, Aug 23, Sep 1
Упорядочивание по дате выполнения
Используйте оператор order by.
subtasks order by any.due
Это находит подзадачи и упорядочивает их по датам выполнения.
Примечание: идентификатор any можно использовать с оператором order by, чтобы указать поле, по которому выполняется сортировка.
Ознакомьтесь со всеми доступными операторами и функциями для использования в формулах Quire.
Часто задаваемые вопросы
Как отобразить несколько значений задачи в одном поле формулы Quire?
Используйте синтаксис массива — [#2, #23].due возвращает даты выполнения задач #2 и #23 в виде списка. Подробнее см. в разделе формулы массивов Quire.
Как рассчитать общую стоимость задачи, включая все её подзадачи, в Quire?
Создайте поле типа Number с именем «Cost» и поле типа Formula с именем «Total Cost», затем введите SUM(subtasks.{Total Cost}, Cost).
Как рассчитать продолжительность задачи в днях между датой начала и датой выполнения в Quire?
Используйте (due - start).days для целых дней (округляется в большую сторону) или (due - start).hours / 24 для большей точности.
Как рассчитать рабочие дни между двумя датами в Quire?
Используйте WORKDAYS(start, due). Добавьте код выходного дня третьим аргументом, чтобы настроить, какие дни считаются выходными — например, WORKDAYS(start, due, 7) считает пятницу и субботу выходными.
Как извлечь отдельные компоненты даты, например день недели или месяц, в формуле Quire?
Используйте точечную нотацию — due.weekday возвращает порядковый номер дня недели (1 = понедельник, 7 = воскресенье). Так же работают год, месяц, день, час, минута и секунда.
Как написать условную формулу в Quire?
Используйте оператор ?: — timeSpent > 5h ? "🔴" : "🟢" отображает красный индикатор, если потраченное время превышает 5 часов, и зелёный в противном случае.
Как отсортировать значения подзадач с помощью формулы Quire?
Используйте SORT(subtasks.due) для сортировки от ранней к поздней. Оберните в DISTINCT(), чтобы убрать дубликаты: DISTINCT(SORT(subtasks.due)).