度量計算欄位使用指南¶
| 版本 | 商業版 | 企業版 | 旗艦版 | 行業專版 |
|---|---|---|---|---|
| 是否可用:自定義計算欄位 | ❌ | ✅ | ✅ | ✅ |
瞭解更多度量使用案例:
功能上新¶
度量計算欄位編輯器全新升級!最佳化計算欄位編寫介面,提升公式編寫體驗。
| 功能點 | 新版 | 舊版 |
|---|---|---|
| 調整佈局與樣式,支援編輯器全屏放大 | ![]() ![]() |
![]() |
| 公式輸入支援原地搜尋 在公式輸入區輸入欄位、函式名稱時,在聯動下方資源庫進行結果查詢的基礎上,可原地喚起搜尋結果下拉選單 透過@可喚起選擇器(選項/人員/團隊/日期/關聯工作項),且支援輸入搜尋 |
![]() ![]() |
不支援 |
| 關聯工作項可搜尋,提升可讀性 | ![]() |
![]() |
| 支援站外文字公式複製 | 公式:SUM(FILTER(${流程節點},each.${節點狀態} == $option{已完成}).${節點估分}) 複製後: ![]() 具體複製規則請參考 |
不支援 |
| 支援公式格式美化 一鍵對公式結構進行換行和縮排 |
![]() |
不支援 |
| 支援快捷鍵 | 上鍵、下鍵、左鍵、右鍵:移動游標 回車鍵:確認選擇/換行 TAB 鍵:公式縮排 Ctrl+Z:取消上一步操作 |
不支援 |
為什麼要用計算欄位?¶
度量場景複雜多變,系統預置的度量欄位不滿足使用時,可透過計算公式自定義維度與指標。
例如:需要統計未完成的需求數量,可以透過計算公式來判斷需求的狀態並進行計數統計。

如何建立計算欄位?¶
新增計算欄位¶
指標/維度區域點選[新增新計算欄位]即可建立計算欄位,計算欄位編輯框分為公式編輯區、欄位與函式選擇區、欄位與函式示例區和輸出結果設定區。
- 公式編輯區:可以使用常見的 formula 公式進行編輯,類似「欄位一 + 欄位二」,從欄位與函式選擇區選擇欄位與函式;
- 欄位與函式選擇區:可以在本區域內選擇所需的欄位與函式輸入到公式編輯區;
- 欄位與函式示例區:在本區域內可以瞭解欄位與函式的介紹與使用示例,方便快速上手使用;
- 輸出結果設定區:可在本區域檢視計算結果型別、設定數字精度。

全屏¶
支援點選【全屏】放大公式編輯區,點選【退出全屏】即可恢復至編輯框初始狀態。

格式美化¶
支援一鍵美化格式,自動對公式結構進行換行和縮排,公式編寫更具可讀性和邏輯性。

複製公式¶
支援站外公式複製,即按格式要求帶有字首資訊的公式,可從文件、聊天框等位置,複製到【度量-計算欄位編輯區】並自動匹配相關欄位。
- 使用範圍:如僅在計算欄位編輯器內編寫公式,無需書寫字首。如需要將公式從編輯器複製到文件,系統會自動匹配相關字首。如需要從文件將公式複製到計算欄位編輯器,公式需帶有相關字首才能最大化的複製並匹配成功。
- 複製格式要求:為了更好的對公式進行匹配,不同的資訊需要匹配不同的字首符號,例如欄位【優先順序】前需增加$,最終效果為${優先順序}。
| 字首規則 | 欄位示例 | 複製公式示例 |
|---|---|---|
| 欄位增加字首$ | ${優先順序} | COUNTIF(${工作項id},${優先順序}==$option{P0}) |
| 選項增加字首$option | $option{P0} | |
| 人員增加字首$user | $user{夢瑤} | SUM(FILTER(${流程節點},each.${節點人員}==$user{夢瑤}).${節點估分}) |
| 團隊增加字首$team | $team{PM} | SUM(FILTER(${流程節點}.${節點人員},CONTAINS(each.${所屬團隊},$team{運營團隊})).${估分插值}) |
| 關聯工作項增加字首$related | $related{需求-關聯缺陷} | COUNT(($related{需求-關聯缺陷}) |
一個計算欄位是如何構成的?¶
計算公式由欄位、運算子與函式構成。
- 欄位:Meegle資料範圍中的度量欄位,例如流程節點.節點名稱、名稱、排期、人員等。
- 運算子:用於對資料進行運算。例如:*、 -、 +、 / 、%、&&、|| 等。
- 函式:函式可以理解為封裝了運算能力的合集,每個函式都有特定的功能。比如 count() 計算個數,sum() 用來求和,string() 用來轉換其他型別為字串型別等等。

瞭解度量的欄位¶
欄位是計算公式中計算的資料。在計算欄位的編輯器中,支援檢視可在計算公式中運算的欄位。
計算公式編輯器中的欄位包含以下三種型別:
- 系統預設提供的度量欄位,如:節點估分、狀態進入次數、人員角色等;
- 當前圖表資料範圍中的工作項欄位
- 當前圖表中的聚合欄位

Meegle提供了視覺化展開子欄位能力,並支援直接在計算欄位公式中使用子欄位。例如流程節點下的節點名稱、節點估分、節點排期等子欄位。

點選欄位,可檢視欄位的名稱、欄位型別、所屬空間、所屬工作項等相關資訊,以及支援檢視選擇型別欄位的所有選項。

瞭解幾個常見的函式¶
接下來我們將瞭解幾個常見的函式,學習如何撰寫計算公式。
if()¶
語法
- if(condition, v1, v2)
- condition:條件表示式
- v1, v2:任意型別
- return:condition 為真時的返回 v1,condition 為假時返回 v2 根據提供的條件引數,條件計算結果為 TRUE 時,返回一個值;條件計算結果為 FALSE 時,返回另一個值
例如:統計“大需求”與“小需求”的數量。當需求總估分大於 50 時,需求級別為“大需求”;當需求總估分小於等於 50 時,需求級別為“小需求”。
- 維度:需求級別
- 指標:需求數量

count()¶
語法
- count(field)
- field:任意型別
- return:數值型別 獲取欄位包含值數量
例如:統計每個業務線的需求數量。
- 維度:業務線
- 指標:需求數量

countIf()¶
語法
- countIf(field,condition)
- field:任意型別
- condition:條件表示式
- return:數值型別 透過條件判斷獲取欄位包含指定值的數量
例如:統計每個業務線優先順序為 P0 的需求數量。
- 維度:業務線
- 指標:優先順序為 P0 的需求數量

sum()¶
語法
- sum(field)
- field:數值型別
- return:數值型別 用於對欄位取和,僅接受數值型別
例如:統計每個業務線投入的人力總和
- 維度:業務線
- 指標:投入的人力總和

sumIf()¶
語法
- sumIf(field, condition)
- field:數值型別
- condition:條件表示式
- return:數值型別 透過條件判斷來對滿足條件的欄位求和,field 僅接受數值型別
例如:統計每個業務線優先順序為 P0 需求的人力總和
- 維度:業務線
- 指標:優先順序為 P0 需求的人力總和

點語法¶
點語法
- P1.P2
- P1: 物件陣列/物件
- P2: 物件陣列/物件中的某一個屬性,也就是子欄位
- return:獲取 P1 中的 P2 物件 用於取出物件屬性,包括陣列物件。所以可使用語法:P1.P2.P3...
例如:

除了透過點語法外,在計算公式的編輯器展開子欄位,選中子欄位即可。

filter()¶
語法
- filter(P1,P2)
- P1:物件陣列
- P2:條件表示式,對源範圍的條件過濾。
- return:對源範圍中按條件過濾後,形成一個物件陣列 在條件表示式中,可使用 each 關鍵字 例如:
filter({流程節點},each.{節點名稱} =="Android開發")等價:filter({流程節點},{流程節點}.{節點名稱} =="Android開發")用於對源範圍條件過濾後,生成一個新的物件陣列。
例如: 過濾後的物件陣列,可以透過點語法,獲取物件陣列中屬性進行運算。例如:

timeseries()¶
語法
- timeseries(startTime,endTime, "day")
- startTime:開始時間
- endTime:結束時間
- "day":日期維度, day、workday、week、bi-week、month、bi-month、quarter 與 year 輸出 輸出時間軸,不能與其他函式混合使用。
詳細瞭解 TIMESERIES 函式使用:
例如:

@ 語法¶
在計算公式的編輯器中,可以使用 @ 語法喚起輸入窗,快捷輸入資料。
| 型別 | 使用步驟/語法 | 圖示 |
|---|---|---|
| 欄位選項 | 在選項型別欄位後,透過 @ 語法可喚起欄位選項 需要注意的是,目前欄位選項需要透過==自動喚起或@ 語法輸入 |
![]() |
| 人員 | 透過 @ 語法切換人員,輸入人員名稱,即可模糊搜尋人員 | ![]() |
| 日期 | 透過 @ 語法切換日期,即可選擇時間 | ![]() |
| 關聯工作項 | 透過 @ 語法切換關聯工作項,即可選擇關聯工作項關係 | ![]() |
獲取人員¶
在計算公式的編輯器中,可透過 @ 語法,獲取成員。
例如:檢視某個成員在不同優先順序需求中投入的人力
- 維度:優先順序
- 指標:某個成員的人力總和

計算關聯工作項¶
在計算的編輯器中,可透過@語法,獲取關聯工作項的資料。

例如:檢視每個需求下關聯缺陷的數量
- 維度:名稱
- 指標:關聯缺陷的數量

例如:檢視每個需求下關聯缺陷中未解決的數量
- 維度:名稱
- 指標:關聯缺陷中未解決的數量

FAQ¶
count 與 countIf 的區別是什麼?¶
count:計算個數 countIf:計算滿足條件的個數
count 與 countDistinct 的區別是什麼?¶
count:計算個數 countDistinct:對資料去重後計算個數
sum 與 sumIf 的區別是什麼?¶
sum:計算求和 sumIf:對滿足條件的資料計算求和
什麼場景下需要使用 filter() ?¶
欄位型別為“物件陣列”,或欄位型別為“物件陣列”的子欄位,可使用 filter() 進行過濾。 例如:流程節點、角色人員、節點排期等等。
如何檢視度量欄位的資料型別¶
函式的引數會限制引數的欄位資料型別。例如 sum(field) 中 field 需要是數值型別。
當我們撰寫公式時,可以在計算欄位的編輯器中,找到對應度量欄位檢視欄位型別。例如:名稱的欄位型別為“字串”。

如何檢視子欄位的資料型別¶
對於一些場景獲取子欄位進行度量,例如流程節點中的“節點負責人”、“節點排期”、“節點估分”等子欄位。 Meegle度量支援點選展開至子級,直接選擇使用相關欄位進行計算。
例如:流程節點展開後,可選擇節點排期、節點子任務、節點人員、節點名稱等度量欄位。選擇節點排期後,可繼續展開至子級,選擇週期時長、預計開始日期、預計結束日期等度量欄位。

下鑽的子級欄位,也可在計算欄位的編輯器中檢視欄位型別。

函式巢狀時,如何檢視子函式返回結果的資料型別?¶
對於複雜的場景,計算欄位通常需要使用多個函式巢狀,那麼其中一個函式的計算結果,會作為一個函式的引數的進行計算。 我們如何檢視其中一個函式的計算結果的資料型別?
可以將函式貼上到計算公式編輯器中,在計算結果型別中檢視:

if({全部節點總估分}>50,"大需求","小需求") //公式解析:當需求全部節點總估分>50時,則返回“大需求”;若當需求全部節點總估分<=50時,則返回“小需求” IF(${全部節點總估分}>50,"大需求","小需求") //可複製本公式至公式編輯區 count({工作項ID}) count({工作項ID}) // 公式解析:計算需求數量 COUNT(${工作項id}) // 可複製本公式至公式編輯區 countif({工作項ID},==@P0) // 公式解析:計算優先順序==P0 的需求數量 COUNTIF(${工作項id},${優先順序}==$option{P0}) // 可複製本公式至公式編輯區 sum({流程節點}.{節點估分}) // 公式解析:對節點估分求和 SUM(${流程節點}.${節點估分}) // 可複製本公式至公式編輯區 sumif({流程節點}.{節點估分},{優先順序}==@P0) // 公式解析:對優先順序==P0 的需求的節點估分求和 SUMIF(${流程節點}.${節點估分},${優先順序}==$option{P0}) // 可複製本公式至公式編輯區 {流程節點}.{節點估分} //獲取流程節點中的節點估分屬性 filter({流程節點},each.{節點名稱}=="Android開發"||each.{節點名稱}=="iOS開發") //過濾出節點名稱為"Android開發"或"iOS開發"的流程節點 sum(filter({流程節點},each.{節點名稱}=="Android開發"||each.{節點名稱}=="iOS開發").{節點估分}) //公式解析:過濾出"Android開發"節點與"iOS開發"節點後,再用{流程節點}.{節點估分}獲取節點估分求和,即可求相關開發節點的估分總和 SUM(FILTER(${流程節點},each.${節點名稱}== "Android開發"||each.${節點名稱}=="iOS開發").${節點估分})// 可複製本公式至公式編輯區 timeseries(date("2024-01-01"),now(),"day") //公式解析:輸出 2024-01-01 到今天的時間,並以天為維度展示時間軸 sum(filter({流程節點},each.{節點人員}==@夢瑤 ).{節點估分}) //公式解析:透過@語法可輸入人員,獲取節點人員是“夢瑤”的節點估分求和 SUM(FILTER(${流程節點},each.${節點人員}==$user{夢瑤}).${節點估分}) // 可複製本公式至公式編輯區 count({需求-關聯缺陷}) //公式解析:透過@語法可輸入關聯工作項 ,獲取關聯缺陷的資料並計算數量 count(filter({需求-關聯缺陷},each.{狀態}!="CLOSED")) //公式解析:透過@語法可輸入關聯工作項 ,獲取關聯缺陷的中狀態不等於CLOSED的缺陷並計算數量 COUNT(FILTER($related{需求-關聯缺陷},each.${狀態}!=$option{CLOSED})) //可複製本公式至公式編輯區 count({工作項ID}) // 計算需求數量 countif({工作項ID},==@P0) // 計算優先順序==P0 的需求數量 count({工作項ID}) // 計算需求數量 countDistinct({工作項ID}) // 對需求去重後計算數量 sum({流程節點}.{節點估分}) // 對節點估分求和 sumIf({流程節點}.{節點估分},{優先順序}==@P0) // 對優先順序==P0 的需求的節點估分求和 field ==@ @夢瑤











