Примеры часто используемых формул Permalink

Переведено ИИ
· Смотреть на английском

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

Расчёт затрат

Чтобы рассчитать общую стоимость задачи и всех её подзадач, понадобятся два пользовательских поля:

  1. Создайте пользовательское поле Cost.
    • Тип поля: Number
    • Знаки после запятой: 2
  2. Создайте пользовательское поле Total Cost.
    • Тип поля: Formula
  3. Введите следующую формулу:
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)).

Последнее обновление:

Пожалуйста свяжитесь с нами, если вам необходима дополнительная помощь.