Last updated: May 28, 2026
想像一下這個畫面:你正盯著自己的專案管理軟體,心裡卻冒出一句:「等等,陣列公式真的能用在這裡嗎?」我是說,我們通常都覺得公式不過就是拿來加加減減數字的東西,對吧?先別急著下定論。
因為事情是這樣的:當你的專案裡有一大堆任務,每個都在忙自己的事時,你得成為掌控各項指標的高手才能成功。而這正是陣列公式登場救援的時刻。在這篇文章裡,我要告訴你這些厲害的公式如何讓你的資料分析功力大躍進。準備好以前所未有的方式,深入你專案的世界吧!
Array Formulas 適用於所有訂閱方案。更多資訊請參閱我們的定價頁面。
陣列就是一組資料的集合,例如任務、負責人、工時長度和數字。陣列公式則讓你能針對選定的資料集合(也就是陣列)進行多項運算。
舉例來說,如果你想計算某個任務的行程安排差異,可以寫出像這樣的公式:
timeSpent - estimated
接著,如果你想計算所有子任務的行程安排差異,可以寫出像這樣的公式:
subtasks.timeSpent - subtasks.estimated
這對你來說或許看起來像外星文——稍後我會說明。在這裡你只需要知道,在上面這道公式裡,subtasks 是一組子任務的集合,而有了陣列公式,你就能像操作簡單數值一樣,輕鬆地把一組陣列減去另一組陣列。
你可以直接在任務描述裡輸入公式,並用 {{ 和 }} 把它包住,藉此隨意試驗公式的運作方式。更多資訊請參閱我們的指南。
在 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 小時的持續時間。更多資訊請參閱我們的指南。
要排序一組資料集合,你只要使用 sort 函式就行了:
sort([3, 1, 5, 2, 4]) * 2
它會回傳以下結果:
[2, 4, 6, 8, 10]
這等同於 sort(3, 1, 5, 2, 4) * 2
如果你只想篩選出前三個元素,可以像這樣使用 limit 運算子:
sort([3, 1, 5, 2, 4]) * 2 limit 3
如果你想把比較小的數值篩掉,可以像這樣使用 where 運算子:
[3, 1, 5, 2, 4] where any > 4
它會回傳以下結果:
[3, 5]
any 是一個關鍵字,代表 where 運算子左側陣列中的每個數值。
讓我們回到那道計算行程安排差異的公式,來玩玩看: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,用來記錄每個任務的成本。

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

有幾點值得留意:
Cost 和 cost 是等價的。SUBTASKS 和 subtasks 也一樣。{ 和 } 把它包起來。這就是為什麼你會在上面那道公式裡看到 {Total Cost}。讓我們再深入一點,看看 Total Cost 是怎麼算出來的。首先,假設我們有三個任務:A、B 和 C,而 B 和 C 是 A 的子任務。另外,你為 A、B、C 輸入的 Cost 分別是 50、30、10。那麼,
SUM(30, 10, 50),也就是 90。
這裡還有一招很酷的公式用法——你可以把它們直接塞進專案描述裡。想像你想顯示專案的總成本,只要在專案描述裡寫下像這樣的內容:
Total cost: {{SUM(tasks.{Total Cost})}}
其中:
{{ 和 }} 把它包起來。此外,一旦你輸入 {{,自動完成對話框就會幫你把公式補齊。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 陣列公式如何助你一臂之力,可以先在任務描述裡試試看。這樣反覆嘗試會更方便。
陣列公式讓你能針對成組的資料(任務、子任務、自訂欄位)進行運算,而不只是針對單一數值。舉例來說,subtasks.timeSpent - subtasks.estimated 能在一行內回傳每個子任務的行程安排差異。
打開任何一個任務的描述,把公式用兩組大括號包起來,你一邊輸入,自動完成對話框就會跳出來。同樣的方式也適用於留言、專案描述和自訂欄位。
sort 會重新排列一組陣列,limit 會回傳前 N 個元素,where 則用 any 關鍵字進行篩選。它們可以串接起來使用,所以你可以先依耗用時間遞減排序子任務,再限制只取前 3 名。
可以。任何支援 Quire 風格 markdown 的欄位,都能在雙大括號裡使用公式,包括任務描述、專案描述和留言。
橫跨陣列的算術運算、比較運算、sort/limit/where/order by,以及像 SUM 和 AVG 這類聚合函式。完整的參考資料都收錄在 Quire 公式指南裡。
好啦,這就是 Quire 陣列公式的全部精華——你最強的專案管理好幫手。而且你知道嗎?Quire 可不只是搭上陣列公式這班列車而已,它根本就是這班列車的駕駛!它是先驅、是開路者——是史上第一個把陣列公式帶到你眼前的專案管理軟體,而且不僅如此,它還把這套功能玩得爐火純青。
在 Quire 裡,陣列公式不只是一項功能,而是一種被精雕細琢到極致的體驗。所以,如果你一心想為自己的專案洞察力大幅加分,Quire 的陣列公式就是來撼動你世界的。準備好大顯身手地運算數字、挖掘洞察,用 Quire 的進階陣列公式把你的專案管理推上全新境界吧。你的專案會感謝你的——你那條理分明、熱愛資料的另一面,也會感謝你!