features · Aug 29, 2023

成功方程式:Quire 陣列公式

AI 翻譯
· 查看英文版

Last updated: May 28, 2026

想像一下這個畫面:你正盯著自己的專案管理軟體,心裡卻冒出一句:「等等,陣列公式真的能用在這裡嗎?」我是說,我們通常都覺得公式不過就是拿來加加減減數字的東西,對吧?先別急著下定論。

因為事情是這樣的:當你的專案裡有一大堆任務,每個都在忙自己的事時,你得成為掌控各項指標的高手才能成功。而這正是陣列公式登場救援的時刻。在這篇文章裡,我要告訴你這些厲害的公式如何讓你的資料分析功力大躍進。準備好以前所未有的方式,深入你專案的世界吧!

Array Formulas 適用於所有訂閱方案。更多資訊請參閱我們的定價頁面

什麼是陣列公式?

陣列就是一組資料的集合,例如任務、負責人、工時長度和數字。陣列公式則讓你能針對選定的資料集合(也就是陣列)進行多項運算。

舉例來說,如果你想計算某個任務的行程安排差異,可以寫出像這樣的公式:

timeSpent - estimated

接著,如果你想計算所有子任務的行程安排差異,可以寫出像這樣的公式:

subtasks.timeSpent - subtasks.estimated

這對你來說或許看起來像外星文——稍後我會說明。在這裡你只需要知道,在上面這道公式裡,subtasks 是一組子任務的集合,而有了陣列公式,你就能像操作簡單數值一樣,輕鬆地把一組陣列減去另一組陣列。

你可以直接在任務描述裡輸入公式,並用 {{}} 把它包住,藉此隨意試驗公式的運作方式。更多資訊請參閱我們的指南

Quire 支援哪些基本的陣列運算?

在 Quire 的公式裡,你可以用 [] 來準備任意的陣列。舉例來說,你可以像這樣建立一組由 1、2、3 組成的集合:

[1, 2, 3]

接著,如果你想把它乘上某個數值,可以這樣做:

[1, 2, 3] * 5

結果會是

[5, 10, 15]

此外,你也可以對兩組陣列進行運算:

[1, 2, 3] - [2, 1, 3]

結果會是

[-1, 1, 0]

好,現在我們可以來解釋前面提到的那道公式了:

subtasks.timeSpent - subtasks.estimated

假設我們有三個子任務,它們的耗用時間分別是 1h、2h 和 3h,預估時間則是 2h、1h、3h。那麼,subtasks.timeSpent 實際上會被算成 [1h, 2h, 3h],而 subtasks.estimated 則會被算成 [2h, 1h, 3h]。於是,結果就是 [-1h, 1h, 0h]

1h 代表 1 小時的持續時間。更多資訊請參閱我們的指南

在 Quire 裡該如何排序和篩選陣列?

sort 函式是怎麼運作的?

要排序一組資料集合,你只要使用 sort 函式就行了:

sort([3, 1, 5, 2, 4]) * 2

它會回傳以下結果:

[2, 4, 6, 8, 10]

這等同於 sort(3, 1, 5, 2, 4) * 2

limit 運算子是怎麼運作的?

如果你只想篩選出前三個元素,可以像這樣使用 limit 運算子:

sort([3, 1, 5, 2, 4]) * 2 limit 3

where 運算子是怎麼運作的?

如果你想把比較小的數值篩掉,可以像這樣使用 where 運算子:

[3, 1, 5, 2, 4] where any > 4

它會回傳以下結果:

[3, 5]

any 是一個關鍵字,代表 where 運算子左側陣列中的每個數值。

order by 運算子是怎麼運作的?

讓我們回到那道計算行程安排差異的公式,來玩玩看:subtasks.timeSpent - subtasks.estimated.

它會回傳所有子任務的時間差異。現在假設我們想取得的是任務本身,而不是行程安排差異,那麼我們可以像這樣使用 order by 運算子:

subtasks order by any.timeSpent - any.estimated

預設的排序方式是遞增。你可以像這樣加上 desc 關鍵字,把它改成遞減:

subtasks order by desc any.timeSpent - any.estimated

這裡有一道更進階、更複雜的公式。來試試看你能不能說出它想做什麼:

subtasks where any.timeSpent > 1d and any.due < tomorrow and any.priority >= high order by desc any.timeSpent - any.estimated limit 3

陣列公式如何揭露你的專案動態?

該如何在自訂欄位裡使用陣列公式?

要用上這招簡直易如反掌——只要建立一個帶有公式的自訂欄位就好。假設你很在意每個任務到底花了你多少錢。首先,你可以定義一個自訂欄位,比方說叫 Cost,用來記錄每個任務的成本。

SQL Formula

接著,你可以再定義一個欄位,例如 Total Cost,用來計算每個任務(含其子任務)的總成本,做法如下。

Data Analysis

有幾點值得留意:

  1. 公式不分大小寫。也就是說,Costcost 是等價的。SUBTASKSsubtasks 也一樣。
  2. 如果某個欄位的名稱含有空格或其他非英數字元,你就必須用 {} 把它包起來。這就是為什麼你會在上面那道公式裡看到 {Total Cost}

讓我們再深入一點,看看 Total Cost 是怎麼算出來的。首先,假設我們有三個任務:A、B 和 C,而 B 和 C 是 A 的子任務。另外,你為 A、B、C 輸入的 Cost 分別是 50、30、10。那麼,

  1. B 和 C 的總成本會是 30 和 10,因為它們沒有任何子任務。
  2. A 的總成本會是 SUM(30, 10, 50),也就是 90。

該如何把陣列公式放進專案描述裡?

Quire Formulas

這裡還有一招很酷的公式用法——你可以把它們直接塞進專案描述裡。想像你想顯示專案的總成本,只要在專案描述裡寫下像這樣的內容:

Total cost: {{SUM(tasks.{Total Cost})}}

其中:

  1. 描述採用的是 Quire 風格 markdown。要指定一道公式,你必須用 {{}} 把它包起來。此外,一旦你輸入 {{,自動完成對話框就會幫你把公式補齊。
  2. tasks 是一個內建識別字,用來代表專案中的所有任務。同樣地,它也不分大小寫。

如果我們想知道最花錢的前 5 個任務,可以這樣做:

{{tasks order by desc any.{Total Cost} limit 5}}

或者,如果你想列出耗費過多時間的任務:

{{tasks where any.timeSpent - any.estimated > 1d order by desc any.timeSpent - any.estimated limit 5}}

只要支援 markdown,你就能把公式放進任何描述裡,包括任務和留言。你甚至可以在某位同事的個人檔案描述裡寫下適當的公式,藉此彙整出他的工作表現。

若想學習並探索 Quire 陣列公式如何助你一臂之力,可以先在任務描述裡試試看。這樣反覆嘗試會更方便。

常見問答

Quire 的陣列公式是什麼?

陣列公式讓你能針對成組的資料(任務、子任務、自訂欄位)進行運算,而不只是針對單一數值。舉例來說,subtasks.timeSpent - subtasks.estimated 能在一行內回傳每個子任務的行程安排差異。

我該如何在 Quire 寫下第一道陣列公式?

打開任何一個任務的描述,把公式用兩組大括號包起來,你一邊輸入,自動完成對話框就會跳出來。同樣的方式也適用於留言、專案描述和自訂欄位。

sort、limit 和 where 有什麼差別?

sort 會重新排列一組陣列,limit 會回傳前 N 個元素,where 則用 any 關鍵字進行篩選。它們可以串接起來使用,所以你可以先依耗用時間遞減排序子任務,再限制只取前 3 名。

我可以在任務和專案描述裡使用陣列公式嗎?

可以。任何支援 Quire 風格 markdown 的欄位,都能在雙大括號裡使用公式,包括任務描述、專案描述和留言。

Quire 支援哪些陣列公式運算子?

橫跨陣列的算術運算、比較運算、sort/limit/where/order by,以及像 SUMAVG 這類聚合函式。完整的參考資料都收錄在 Quire 公式指南裡。

來在 Quire 寫下你的第一道公式吧!

好啦,這就是 Quire 陣列公式的全部精華——你最強的專案管理好幫手。而且你知道嗎?Quire 可不只是搭上陣列公式這班列車而已,它根本就是這班列車的駕駛!它是先驅、是開路者——是史上第一個把陣列公式帶到你眼前的專案管理軟體,而且不僅如此,它還把這套功能玩得爐火純青。

在 Quire 裡,陣列公式不只是一項功能,而是一種被精雕細琢到極致的體驗。所以,如果你一心想為自己的專案洞察力大幅加分,Quire 的陣列公式就是來撼動你世界的。準備好大顯身手地運算數字、挖掘洞察,用 Quire 的進階陣列公式把你的專案管理推上全新境界吧。你的專案會感謝你的——你那條理分明、熱愛資料的另一面,也會感謝你!

Tom Yeh
CEO at Quire.