最後更新:2026 年 10 月 14 日
陣列公式能一次針對整組資料進行運算,而不是一次只計一個數值:每個子任務的耗用時間、每個任務的成本都適用。在任何描述或留言裏用雙大括號寫下公式,再配合 sort、limit、where 和 order by 調整結果。所有訂閲方案均可使用。
想像一下這個畫面:你正看着自己的專案管理軟件,心裏卻冒出一句:「等等,陣列公式真的用得着嗎?」我是說,我們通常都覺得公式不過是用來加加減減數字的東西,對吧?先別急着下定論。
因為事情是這樣的:當你的專案裏有一大堆任務,各自忙着自己的事時,你得成為掌控各項指標的高手才能成功。而這正是陣列公式登場救亡的時刻。
在這篇文章裏,我會告訴你這些厲害的公式如何讓你的數據分析功力大躍進。準備好以前所未有的方式,深入你專案的世界吧!
陣列公式適用於所有訂閲方案。更多資訊請參閱我們的定價頁面。
陣列就是一組資料的集合,例如任務、負責人、工時長度和數字。陣列公式則讓你能針對選定的資料集合(即陣列)進行多項運算。
舉例來說,如果你想計算某個任務的進度差異,可以寫出這樣的公式:
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 的進階陣列公式把你的專案管理推上全新境界吧。你的專案會感謝你,你那條理分明、熱愛數據的另一面也會感謝你!