Массивные формулы в Quire Permalink
Массивная формула в Quire позволяет работать с набором значений — такими как задачи, подзадачи, исполнители, числа или длительности — сразу. Вместо того чтобы вычислять значения по одному, массивные формулы позволяют выполнять групповые вычисления и возвращать несколько результатов или одно агрегированное значение.
Понимание массивных формул
Массив — это список значений, обычно разделённых запятыми. В формулах Quire массивы часто возвращаются при обращении к нескольким элементам, например к подзадачам или полям задачи.
Например, вместо вычисления отклонения от планирования для одной задачи:
timeSpent - estimated
Можно вычислить отклонение от планирования для всех подзадач сразу с помощью массивной формулы:
subtasks.timeSpent - subtasks.estimated
Поскольку subtasks возвращает список, Quire выполняет вычисление для каждой подзадачи отдельно и возвращает список результатов.
Использование массивных формул для базовых вычислений
Арифметические операторы
Массивные формулы поддерживают все основные числовые операторы:
- Сложение (
+) - Вычитание (
-) - Умножение (
*) - Деление (
/)
Пример:
- Время подзадачи:
3h, 2h, 1h - Расчетное время подзадачи:
1h, 2h, 3h
Если написать:
subtasks.timeSpent
Quire интерпретирует это как:
[3h, 2h, 1h]
При использовании массивной формулы:
subtasks.timeSpent - subtasks.estimated
Вычисление выглядит так:
[3h, 2h, 1h] - [1h, 2h, 3h]
Результат:
[2h, 0h, -2h]
Каждое значение в массиве представляет результат вычисления для одной подзадачи.
Использование массивных формул с операторами и функциями
Совмещение с функциями
Массивные формулы можно использовать совместно со встроенными операторами и функциями Quire для более сложного анализа.
Используя тот же пример с затраченным временем, можно отсортировать значения и выполнить вычисления:
SORT(subtasks.timeSpent) * 2
Это интерпретируется как:
SORT([3h, 2h, 1h]) * 2
И возвращает:
[2h, 4h, 6h]
Это удобно для преобразования и анализа наборов данных задач.
Фильтрация данных с помощью массивных формул
Фильтрация с where
Массивы можно фильтровать с помощью оператора where, чтобы возвращать только элементы, удовлетворяющие заданным условиям.
Пример: фильтрация подзадач, в которых затраченное время составляет 2 часа и более:
subtasks where any.timeSpent >= 2h
Результат вычисления:
[3h, 2h]
И возвращаются соответствующие задачи:
subtask 1, subtask 2
Эта формула перебирает все подзадачи, применяет условие и возвращает только подходящие элементы.
Примечание: Используйте идентификатор any вместе с where, чтобы указать, к какому полю применяется условие.
Подробнее читайте в нашем блоге о массивных формулах Quire.
Часто задаваемые вопросы
Что такое массивная формула в Quire?
Массивная формула работает с набором значений сразу. Например, subtasks.timeSpent - subtasks.estimated вычисляет отклонение от планирования для каждой подзадачи и возвращает список результатов.
Как вычислить значение по всем подзадачам в Quire?
Обратитесь к полю объекта subtasks — например, subtasks.timeSpent - subtasks.estimated вычисляет разницу для каждой подзадачи и возвращает массив результатов.
Как отсортировать массив значений подзадач в формуле Quire?
Оберните массив в SORT() — например, SORT(subtasks.timeSpent) возвращает значения времени подзадач от наименьшего к наибольшему. Можно объединять операции: SORT(subtasks.timeSpent) * 2.
Как отфильтровать подзадачи по условию в массивной формуле Quire?
Используйте оператор where с any — например, subtasks where any.timeSpent >= 2h возвращает только те подзадачи, в которых затраченное время составляет 2 часа и более.