Quire 公式的所有運算子與函式 Permalink
本指南完整介紹 Quire 公式支援的所有運算子與函式,並透過清楚的說明與實用範例,協助您建構強大的計算、條件與任務邏輯。
數值運算子
數值運算子可用於計算儲存在數字欄位中的值。
| 運算子 | 功能 | 範例 |
|---|---|---|
| + | 數值相加 | timeSpent + 100 |
| - | 數值相減 | Cost - 100 |
| * | 數值相乘 | Cost * 100 |
| / | 數值相除 | Cost / 100 |
| % | 計算餘數 | Cost % 3 |
| ^ | 計算次方 | Cost ^ 3 |
備註: 在公式中使用前,必須先建立數字自訂欄位(例如 Cost)。
文字運算子
文字運算子可將多個文字字串合併或串接為單一輸出。
| 運算子 | 功能 | 範例 |
|---|---|---|
| + | 串接文字 | ‘This is’ + ‘a task’ |
比較運算子
比較運算子會根據兩個值之間的關係回傳 true 或 false。
| 運算子 | 意義 | 範例 |
|---|---|---|
| < | 小於 | 3 < 1 -> False |
| > | 大於 | 4 > 3 -> True |
| <= | 小於或等於 | 4 <= 2 -> False |
| >= | 大於或等於 | 5 >= 1 -> True |
| = | 等於 | 2 = 2 -> True |
| != | 不等於 | 3 != 2 -> True |
邏輯運算子
not
反轉 true/false 的結果。
範例:
Not (Cost > 50)
若 Cost 大於 50,結果為 false;否則回傳 true。
備註: 在公式中使用前,必須先建立數字自訂欄位(例如 Cost)。
in
使用 in 檢查第一個清單中的值是否完全包含於第二個清單中。
範例:
assignees in subtasks.assignees
若任務的所有負責人也都被指派至其子任務,則回傳 true。
&
尋找並回傳兩個清單之間的共同值。
範例:
assignees & subtasks.assignees
回傳同時屬於該任務與其子任務的負責人。
and
評估所有條件,並僅在每個條件皆成立時回傳 true。
範例:
(Cost > 50) and (due > <today>)
備註: 在公式中使用前,必須先建立數字自訂欄位(例如 Cost)。
or
檢查每個條件,並在任一條件具有值時回傳 true。
範例:
Cost or Budget
備註: 在公式中使用前,必須先建立數字自訂欄位(例如 Cost)。
清單運算子
[field, field]
使用方括號將多個值組合成一個清單。
範例:
[me, #23.assignees, subtasks.assignees]
回傳一個清單,包含我自己、被指派至 ID#23 任務的所有負責人,以及子任務的所有負責人。
進一步了解 Quire 的陣列公式,它能讓您列出資料集合或對其進行計算。
field[index]
依索引存取清單項目(從 0 開始)。
範例:
subtasks[3]
回傳第 4 個子任務。
order by
依指定欄位排序任務。
範例:
subtasks order by any.Cost
回傳子任務清單,並依其 Cost 欄位的值進行排序。
備註: 在公式中使用前,必須先建立數字自訂欄位(例如 Cost)。
提示: 您也可以在運算式結尾加上 asc 或 desc 來指定排序方向。例如,可輸入:subtasks order by any.Cost asc。
map
對清單中的每個項目套用計算。
範例:
subtasks map any.Cost * 2
回傳子任務 Cost 欄位的值清單,並將每個值乘以 2。
備註: 在公式中使用前,必須先建立數字自訂欄位(例如 Cost)。
提示: 您可以將 any 識別符搭配 map 運算子使用,以指定要計算的欄位。
條件運算子
??
檢查任務是否符合 ?? 前方的運算式並回傳 true/false 值。若任務不符合該運算式,則回傳 ?? 後方運算式的值。
範例:
(Cost > 10) ?? 'Reconsider'
若 Cost 欄位的值大於 10,則回傳 true;若小於 10,則顯示 false。若 Cost 中未輸入任何值,則會顯示「Reconsider」。
備註: 在公式中使用前,必須先建立數字自訂欄位(例如 Cost)。
?:
檢查任務是否符合 ? 前方的運算式,若符合則回傳 ? 後方的運算式;若不符合,則回傳 : 後方的運算式。
範例:
(Cost > 10) ? 'Too expensive': 'Reconsider'
若 Cost 欄位的值大於 10,則顯示「Too expensive」;若小於 10 或未輸入任何值,則顯示「Reconsider」。
備註: 在公式中使用前,必須先建立數字自訂欄位(例如 Cost)。
篩選與限制結果
where
篩選符合特定條件的任務。
範例:
subtasks where any.Cost > 10
列出 cost 值大於 10 的子任務。
備註: 在公式中使用前,必須先建立數字自訂欄位(例如 Cost)。
提示: 您可以將 any 識別符搭配 where 運算子使用,以指定要篩選的欄位。
limit
限制排序後回傳的任務數量。
範例:
subtasks order by desc any.timeSpent - any.estimated limit 3
列出耗用時間值大於預估時間值的前 3 個子任務。
運算子優先順序
在某些情況下,計算順序會影響公式的回傳值,因此理解 Quire 中的運算順序十分重要。若您在同一個公式中組合不同的運算子,Quire 會依下表所示的順序進行計算。若公式中有多個相同優先順序的運算子,Quire 會由左至右依序計算。
| 運算子 | 說明 |
|---|---|
( ).[ ]( ) |
括號 點運算子 清單(陣列) 函式呼叫 |
+ - not |
一元運算子 |
^ |
次方 |
* / % |
乘法與除法 |
+ - |
加法與減法 |
< > <= >= in & |
比較運算子 |
= != |
等式運算子 |
not |
邏輯 not 運算子 |
and |
邏輯 and 運算子 |
or |
邏輯 or 運算子 |
?? |
條件運算子 |
where |
篩選運算子 |
?: |
條件運算子 |
所有內建函式
| 函式 | 說明 | 範例 | 預期結果 |
|---|---|---|---|
| SUM() | 回傳所有值的總和。 | SUM(subtasks.estimated) |
將任務所有子任務 Estimate 欄位中的值加總。 |
| MAX() | 回傳一組值中的最大值。 | MAX(subtasks.estimated) |
顯示任務所有子任務 Estimate 欄位中的最大值。 |
| MIN() | 回傳一組值中的最小值。 | MIN(subtasks.estimated) |
顯示任務所有子任務 Estimate 欄位中的最小值。 |
| AVG() | 回傳這些數字的平均值。 | AVG(subtasks.estimated) |
計算任務所有子任務 Estimate 欄位的平均值。 |
| COUNT() | 回傳項目的數量。 | COUNT(subtasks) |
顯示子任務的總數。 |
| SORT() | 將引數依排序後的順序回傳。 | SORT(subtasks.estimated) |
將任務所有子任務 Estimate 欄位中的值依排序後的順序顯示。 |
| DISTINCT() | 移除重複值,僅回傳不重複的值。 | DISTINCT(subtasks.estimated) |
顯示任務所有子任務 Estimate 欄位中的不重複值,並移除重複的部分。 |
| ISEMPTY() | 檢查輸入引數是否為空,並回傳 true/false 值。 | ISEMPTY(estimated) |
若該任務的 Estimate 欄位為空,則顯示已勾選的核取方塊。 |
| ISNOTEMPTY() | 檢查輸入引數是否為空,並回傳 true/false 值。 | ISNOTEMPTY(estimated) |
若該任務的 Estimate 欄位不為空,則顯示已勾選的核取方塊。 |
常見問題
在 Quire 公式中可以使用哪些算術運算子?
Quire 支援 +、-、*、/、%(餘數)與 ^(次方)。在公式中引用數字自訂欄位前,必須先建立該欄位。
Quire 公式提供哪些內建函式?
Quire 內建 SUM()、MAX()、MIN()、AVG()、COUNT()、SORT()、DISTINCT()、ISEMPTY() 與 ISNOTEMPTY()。完整參考請見所有內建函式。
Quire 公式的運算子優先順序如何運作?
Quire 依以下順序計算運算子:先處理括號與點/清單運算子,接著是次方、乘除、加減、比較、邏輯,最後才是條件運算子。需要時可使用括號覆寫預設順序。
如何在 Quire 中撰寫 IF/條件式公式?
使用 ?: 進行雙結果條件判斷——(Cost > 10) ? 'Too expensive' : 'Reconsider'。?? 則僅在欄位為空時作為替代值使用。
如何在 Quire 公式中依欄位值篩選子任務?
使用 where 運算子——subtasks where any.Cost > 10 會回傳 Cost 大於 10 的子任務。搭配 limit 可限制結果數量。
如何在 Quire 公式中對清單進行排序或重新排列?
使用 order by——subtasks order by any.Cost 會依 Cost 欄位排序。加上 asc 或 desc 可控制排序方向。
如何在 Quire 中對清單中的每個項目套用計算?
使用 map 運算子——subtasks map any.Cost * 2 會將每個子任務的 Cost 值乘以 2。