所有運算符與函數 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)之前,您必須先建立該欄位。
提示: 您可以在 map 運算符中使用 any 識別符來指定要計算的欄位。
條件運算符
??
檢查任務是否符合 ?? 前面的運算式並傳回 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)之前,您必須先建立該欄位。
提示: 您可以在 where 運算符中使用 any 識別符來指定要篩選的欄位。
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) |
將任務的子任務的預估欄位中的所有值加總。 |
| MAX() | 傳回一組值中的最大值。 | MAX(subtasks.estimated) |
顯示任務的子任務的預估欄位中可找到的最大值。 |
| MIN() | 傳回一組值中的最小值。 | MIN(subtasks.estimated) |
顯示任務的子任務的預估欄位中可找到的最小值。 |
| AVG() | 傳回數字的平均值。 | AVG(subtasks.estimated) |
計算任務的子任務的預估欄位的平均值。 |
| COUNT() | 傳回項目的數量。 | COUNT(subtasks) |
顯示子任務的總數。 |
| SORT() | 傳回引數的排序順序。 | SORT(subtasks.estimated) |
以排序後的順序顯示任務的子任務的預估欄位中的所有值。 |
| DISTINCT() | 移除複製值並只傳回唯一值。 | DISTINCT(subtasks.estimated) |
顯示任務的子任務的預估欄位中的所有唯一值,並移除複製值。 |
| ISEMPTY() | 檢查輸入引數是否為空並傳回 true/false 值。 | ISEMPTY(estimated) |
若任務的預估欄位為空,則會顯示一個已勾選的核取方塊。 |
| ISNOTEMPTY() | 檢查輸入引數是否為空並傳回 true/false 值。 | ISNOTEMPTY(estimated) |
若任務的預估欄位不為空,則會顯示一個已勾選的核取方塊。 |
常見問題
我可以在 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。