跳轉至

度量計算欄位使用指南

版本 商業版 企業版 旗艦版 行業專版
是否可用:自定義計算欄位

瞭解更多度量使用案例:

功能上新

度量計算欄位編輯器全新升級!最佳化計算欄位編寫介面,提升公式編寫體驗。

功能點 新版 舊版
調整佈局與樣式,支援編輯器全屏放大 a8528fe16-8123-4893-a40e-b69a6f0fac13
a966ca7d3-0252-4c79-a83c-208e692705d7
a42c3e679-b05a-4ef3-8e96-cac222bdfba9
公式輸入支援原地搜尋
在公式輸入區輸入欄位、函式名稱時,在聯動下方資源庫進行結果查詢的基礎上,可原地喚起搜尋結果下拉選單
透過@可喚起選擇器(選項/人員/團隊/日期/關聯工作項),且支援輸入搜尋
Tkrhv07X
wgmzJHwu
不支援
關聯工作項可搜尋,提升可讀性 t4Lp6aJ6 a58d60313-da0c-4877-8d93-ecbe4d494e98
支援站外文字公式複製 公式:SUM(FILTER(${流程節點},each.${節點狀態} == $option{已完成}).${節點估分})
複製後:
a79ec6de4-c3d1-4747-8a21-cd16303bfd69
具體複製規則請參考
不支援
支援公式格式美化
一鍵對公式結構進行換行和縮排
a93116043-3a09-4f49-9242-2622c50d0ea6 不支援
支援快捷鍵 上鍵、下鍵、左鍵、右鍵:移動游標
回車鍵:確認選擇/換行
TAB 鍵:公式縮排
Ctrl+Z:取消上一步操作
不支援

為什麼要用計算欄位?

度量場景複雜多變,系統預置的度量欄位不滿足使用時,可透過計算公式自定義維度與指標。

例如:需要統計未完成的需求數量,可以透過計算公式來判斷需求的狀態並進行計數統計。

a9beb7769-f594-4055-8ae8-c5a2bf10ca63

如何建立計算欄位?

新增計算欄位

指標/維度區域點選[新增新計算欄位]即可建立計算欄位,計算欄位編輯框分為公式編輯區欄位與函式選擇區欄位與函式示例區輸出結果設定區

  • 公式編輯區:可以使用常見的 formula 公式進行編輯,類似「欄位一 + 欄位二」,從欄位與函式選擇區選擇欄位與函式;
  • 欄位與函式選擇區:可以在本區域內選擇所需的欄位與函式輸入到公式編輯區;
  • 欄位與函式示例區:在本區域內可以瞭解欄位與函式的介紹與使用示例,方便快速上手使用;
  • 輸出結果設定區:可在本區域檢視計算結果型別、設定數字精度。

a65f32fc2-2833-4d29-8121-104330571db6

全屏

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

a53d0c943-307d-4e39-bf61-af52e669454c

格式美化

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

a1e6df19f-7a60-42f6-86fd-276806ff72e6

複製公式

支援站外公式複製,即按格式要求帶有字首資訊的公式,可從文件、聊天框等位置,複製到【度量-計算欄位編輯區】並自動匹配相關欄位。

  • 使用範圍:如僅在計算欄位編輯器內編寫公式,無需書寫字首。如需要將公式從編輯器複製到文件,系統會自動匹配相關字首。如需要從文件將公式複製到計算欄位編輯器,公式需帶有相關字首才能最大化的複製並匹配成功。
  • 複製格式要求:為了更好的對公式進行匹配,不同的資訊需要匹配不同的字首符號,例如欄位【優先順序】前需增加$,最終效果為${優先順序}
字首規則 欄位示例 複製公式示例
欄位增加字首$ ${優先順序} 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() 用來轉換其他型別為字串型別等等。

aac9e096e-6ace-4053-8fd1-e9828daae3bc

瞭解度量的欄位

欄位是計算公式中計算的資料。在計算欄位的編輯器中,支援檢視可在計算公式中運算的欄位。

計算公式編輯器中的欄位包含以下三種型別:

  1. 系統預設提供的度量欄位,如:節點估分、狀態進入次數、人員角色等;
  2. 當前圖表資料範圍中的工作項欄位
  3. 當前圖表中的聚合欄位

JgKPg7vh

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

gQ2UVw0X

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

Cj8AMmM8

瞭解幾個常見的函式

接下來我們將瞭解幾個常見的函式,學習如何撰寫計算公式。

if()

語法

  • if(condition, v1, v2)
  • condition:條件表示式
  • v1, v2:任意型別
  • return:condition 為真時的返回 v1,condition 為假時返回 v2 根據提供的條件引數,條件計算結果為 TRUE 時,返回一個值;條件計算結果為 FALSE 時,返回另一個值

例如:統計“大需求”與“小需求”的數量。當需求總估分大於 50 時,需求級別為“大需求”;當需求總估分小於等於 50 時,需求級別為“小需求”。

  • 維度:需求級別
  • 指標:需求數量

a8eb094b2-790b-4a4f-bb14-59f8c846731d

count()

語法

  • count(field)
  • field:任意型別
  • return:數值型別 獲取欄位包含值數量

例如:統計每個業務線的需求數量。

  • 維度:業務線
  • 指標:需求數量

a9657d77a-0a9d-4b3c-a6c1-b9d4ee36e044

countIf()

語法

  • countIf(field,condition)
  • field:任意型別
  • condition:條件表示式
  • return:數值型別 透過條件判斷獲取欄位包含指定值的數量

例如:統計每個業務線優先順序為 P0 的需求數量。

  • 維度:業務線
  • 指標:優先順序為 P0 的需求數量

a312b8fb5-b603-49bb-a8d8-1f26c1dceb1d

sum()

語法

  • sum(field)
  • field:數值型別
  • return:數值型別 用於對欄位取和,僅接受數值型別

例如:統計每個業務線投入的人力總和

  • 維度:業務線
  • 指標:投入的人力總和

af576819d-d297-4304-b7fc-b7464380cbe1

sumIf()

語法

  • sumIf(field, condition)
  • field:數值型別
  • condition:條件表示式
  • return:數值型別 透過條件判斷來對滿足條件的欄位求和,field 僅接受數值型別

例如:統計每個業務線優先順序為 P0 需求的人力總和

  • 維度:業務線
  • 指標:優先順序為 P0 需求的人力總和

a76b76de4-30de-4a66-a877-eb79b657bdc0

點語法

點語法

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

例如:

a833466ff-b5e0-4883-87fd-a3ea95ebf637

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

ae86986fb-952d-4de1-8d49-9350e58f5f02

filter()

語法

  • filter(P1,P2)
  • P1:物件陣列
  • P2:條件表示式,對源範圍的條件過濾。
  • return:對源範圍中按條件過濾後,形成一個物件陣列條件表示式中,可使用 each 關鍵字 例如:filter({流程節點},each.{節點名稱} =="Android開發") 等價:filter({流程節點},{流程節點}.{節點名稱} =="Android開發") 用於對源範圍條件過濾後,生成一個新的物件陣列。

例如: 過濾後的物件陣列,可以透過點語法,獲取物件陣列中屬性進行運算。例如:

a397a9022-77a7-4267-8753-657de1d69fb4

timeseries()

語法

  • timeseries(startTime,endTime, "day")
  • startTime:開始時間
  • endTime:結束時間
  • "day":日期維度, day、workday、week、bi-week、month、bi-month、quarter 與 year 輸出 輸出時間軸,不能與其他函式混合使用。

    詳細瞭解 TIMESERIES 函式使用:

例如:

a6ccfceb6-bced-43f4-bb1e-b94712d61560

@ 語法

在計算公式的編輯器中,可以使用 @ 語法喚起輸入窗,快捷輸入資料。

型別 使用步驟/語法 圖示
欄位選項 在選項型別欄位後,透過 @ 語法可喚起欄位選項

需要注意的是,目前欄位選項需要透過==自動喚起或@ 語法輸入
a66679604-535c-4d74-b9ec-05667a4c3783
人員 透過 @ 語法切換人員,輸入人員名稱,即可模糊搜尋人員 aa9c5c347-2dcd-433a-b161-8f5e36528661
日期 透過 @ 語法切換日期,即可選擇時間 ad8a79b4c-0bef-4924-b562-353ea62ad582
關聯工作項 透過 @ 語法切換關聯工作項,即可選擇關聯工作項關係 a850bf041-1817-499e-91be-cea57c7e3fcb

獲取人員

在計算公式的編輯器中,可透過 @ 語法,獲取成員。

例如:檢視某個成員在不同優先順序需求中投入的人力

  • 維度:優先順序
  • 指標:某個成員的人力總和

a3943c457-19d6-4e37-9f97-1261fa60dc60

計算關聯工作項

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

OKcTUABa

例如:檢視每個需求下關聯缺陷的數量

  • 維度:名稱
  • 指標:關聯缺陷的數量

af21fd5de-dfd7-4f38-a6d1-fac036730090

例如:檢視每個需求下關聯缺陷中未解決的數量

  • 維度:名稱
  • 指標:關聯缺陷中未解決的數量

ae1f65625-651d-4e44-bfd1-b5a5ed042025

FAQ

count 與 countIf 的區別是什麼?

count:計算個數 countIf:計算滿足條件的個數

count 與 countDistinct 的區別是什麼?

count:計算個數 countDistinct:對資料去重後計算個數

sum 與 sumIf 的區別是什麼?

sum:計算求和 sumIf:對滿足條件的資料計算求和

什麼場景下需要使用 filter() ?

欄位型別為“物件陣列”,或欄位型別為“物件陣列”的子欄位,可使用 filter() 進行過濾。 例如:流程節點、角色人員、節點排期等等。

如何檢視度量欄位的資料型別

函式的引數會限制引數的欄位資料型別。例如 sum(field) 中 field 需要是數值型別。

當我們撰寫公式時,可以在計算欄位的編輯器中,找到對應度量欄位檢視欄位型別。例如:名稱的欄位型別為“字串”。

a538735dd-7ef7-45cf-80bf-011640eb4196

如何檢視子欄位的資料型別

對於一些場景獲取子欄位進行度量,例如流程節點中的“節點負責人”、“節點排期”、“節點估分”等子欄位。 Meegle度量支援點選展開至子級,直接選擇使用相關欄位進行計算。

例如:流程節點展開後,可選擇節點排期、節點子任務、節點人員、節點名稱等度量欄位。選擇節點排期後,可繼續展開至子級,選擇週期時長、預計開始日期、預計結束日期等度量欄位。

a7d3bf721-be76-44ff-8fbb-fe97447c4aed

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

a6f6e9564-914e-44e8-a273-216b44f408f1

函式巢狀時,如何檢視子函式返回結果的資料型別?

對於複雜的場景,計算欄位通常需要使用多個函式巢狀,那麼其中一個函式的計算結果,會作為一個函式的引數的進行計算。 我們如何檢視其中一個函式的計算結果的資料型別?

可以將函式貼上到計算公式編輯器中,在計算結果型別中檢視:

abc10a2ca-b2de-49a3-8566-d030a0e1a1bf

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 ==@ @夢瑤