時間軸函式介紹¶
函式概覽¶
在度量分析中,時間軸函式是用於構建時間維度、以便按時間序列統計資料的關鍵工具。當前提供兩個核心時間軸函式:TIMELINE 和 TIMESERIES 。
TIMELINE函式 : 是一種基於資料快照進行統計的時間軸函式 。它在統計時,時間軸本身具有業務語義。可以被理解為一個租戶管理員,在每天結束時會把截止到那一刻的全部資料拍照存檔,並貼上當天的日期標籤。每個日期刻度的指標都是根據當天快照裡的資料算出來的。TIMESERIES函式 : 是一種基於實時資料統計的時間軸函式。它構建的是一條沒有任何業務語義的時間軸,專注於解決TIMELINE的侷限性。
函式核心區別¶
| 特性 | TIMELINE 函式 | TIMESERIES 函式 |
|---|---|---|
| 資料來源 | 基於資料快照統計 | 基於實時資料統計 |
| 時間軸特性 | 時間軸本身具有業務語義 (日期快照) | 構建一條沒有任何業務語義的時間軸 |
| 對補填資料的支援 | 不支援,只會記錄在補填當天(及往後)的存檔中 | 支援,基於實時資料可靈活配置指標,追溯到歷史時間軸 |
| 對未來資料的支援 | 不支援,無法展示未來資料 | 支援,可用於展示預估/計劃資料 |
| 典型用法 | 統計每天有更新的工作項數量 維度: TIMELINE(DATE("2025-11-01"),DATE("2025-12-31"),"day")指標: COUNTIF(${工作項id},TOSTARTOFDAY(${更新時間})==TOSTARTOFDAY(TIMELINECURSOR()))![]() |
統計最新一次更新的工作項數量 維度: TIMESERIES(DATE("2025-11-01"),DATE("2025-12-31"),"day")指標: COUNTIF(${工作項id},TOSTARTOFDAY(${ 更新時間})==TOSTARTOFDAY(TIMELINECURSOR()))![]() |
TIMESERIES 使用場景¶
專案立項進展統計(按日、周、月聚合)¶
| 場景 | 操作方式 |
|---|---|
| 專案立項進展 (按日) |
維度:TIMESERIES(DATE("2025-10-01"),DATE("2025-12-31"),"day")指標: COUNTIF(${工作項id},TOSTARTOFDAY(${立項時間})==TOSTARTOFDAY(TIMELINECURSOR()))解析: 透過 TOSTARTOFDAY 函式,將工作項的立項時間與時間軸刻度 TIMELINECURSOR() 對齊,實現按天統計 |
| 專案立項進展 (按周) |
維度:TIMESERIES(DATE("2025-10-01"),DATE("2025-12-31"),"week")指標: COUNTIF(${工作項id},GETWEEKOFYEAR(${立項時間})==GETWEEKOFYEAR(TIMELINECURSOR())&&GETYEAR(${立項時間})==GETYEAR(TIMELINECURSOR()))解析: 透過 GETWEEKOFYEAR 和 GETYEAR 函式,將工作項的立項時間與時間軸刻度 TIMELINECURSOR() 對齊,實現按周統計 |
| 專案立項進展 (按雙週) |
維度:TIMESERIES(DATE("2025-10-01"),DATE("2025-12-31"),"bi-week")指標: COUNTIF(${工作項id},TOSTARTOFDAY(${立項時間})>TOSTARTOFDAY(DATEADD(TIMELINECURSOR(),-14)) && TOSTARTOFDAY(${立項時間})<=TOSTARTOFDAY(TIMELINECURSOR()) )解析: 透過DATEADD(TIMELINECURSOR(),-14) ,計算統計週期的前 14 天,立項時間大於前 14 天,小於等於統計週期當天,將工作項的立項時間與時間軸刻度 TIMELINECURSOR() 對齊,實現按雙週統計 |
| 專案立項進展 (按月) |
維度:TIMESERIES(DATE("2025-10-01"),DATE("2025-12-31"),"month")指標: COUNTIF(${工作項id},TOSTARTOFMONTH(${立項時間})==TOSTARTOFMONTH(TIMELINECURSOR()))解析: 透過 TOSTARTOFMONTH 函式,將工作項的立項時間與時間軸刻度 TIMELINECURSOR() 對齊,實現按月統計 |
| 專案立項進展 (按雙月) |
維度:TIMESERIES(DATE("2025-10-01"),DATE("2025-12-31"),"bi-month")指標: COUNTIF(${工作項id},(TOMONTH(${立項時間})==TOMONTH(TIMELINECURSOR()) or TOMONTH(${立項時間})==TOMONTH(TIMELINECURSOR())-1)&&TOYEAR(${立項時間})==TOYEAR(TIMELINECURSOR()))解析: 透過 TOMONTH 獲取日期所在月份,允許其落在本月和前一個月的時間範圍,滿足月的序數,將工作項的立項時間與時間軸刻度 TIMELINECURSOR() 對齊,實現按雙月統計 |
需求吞吐¶
| 場景 | 操作方式 |
|---|---|
| 需求的日增量、日減量、剩餘未完成量 | 維度:TIMESERIES(DATE("2025-01-01"),DATE("2025-12-31"),"month")指標: [計算日增量] COUNTIF(${工作項id},TOSTARTOFMONTH(${提出時間})==TOSTARTOFMONTH(TIMELINECURSOR()))[計算日減量] COUNTIF(${工作項id},TOSTARTOFMONTH(${完成日期})==TOSTARTOFMONTH(TIMELINECURSOR()))[計算未完成量] COUNTIF(${工作項id},TOSTARTOFMONTH(${提出時間})<=TIMELINECURSOR())-COUNTIF(${工作項id},TOSTARTOFDAY(${完成日期})<=TIMELINECURSOR())解析: 日增量、日減量,透過 TOSTARTOMONTH 函式,將提出時間/完成時間與時間軸刻度 TIMELINECURSOR() 對齊,實現按月統計。未完成量,透過統計提出時間小於等於當前刻度日期的總數,減去完成時間小於等於當前刻度日期的數量,實現按月統計。 |
統計指定週期內人力投入¶
| 場景 | 操作方式 |
|---|---|
| 檢視某個專案在每個月的估分投入 | 維度:TIMESERIES(DATE("2025-01-01"),TODAY(),"month") 指標: 流程節點/節點人員/估分插值(求和) 解析: 估分插值搭配 TIMESERIES 使用,可以根據節點人員排期,計算節點人員在指定時間內的節點人員估分投入值。 |
TIMELINE 使用場景¶
統計需求周開發情況資料快照¶
| 場景 | 操作方式 |
|---|---|
| 計算每週完成開發節點的需求數量 | 維度:TIMELINE(DATE("2025-01-01"),TODAY(),"week") 指標: COUNTIF(${工作項id}, TOSTARTOFDAY(MAXIF(${流程節點}.${節點末次結束時間},${流程節點}.${節點名稱}=="開發"))<=TOSTARTOFDAY(TIMELINECURSOR())&&TOSTARTOFDAY(MAXIF(${流程節點}.${節點末次結束時間},${流程節點}.${節點名稱}=="開發"))>DATEADD(TIMELINECURSOR(),-7))解析: MAXIF函式統計開發節點結束時間,與 TIMELINECURSOR() 函式對齊,大於前 7 天,小於等於當前統計週期,實現按周統計時間快照。 |
常見問題¶
TIMELINE或TIMESERIES 函式支援 自定義周或雙週的週期範圍嗎?¶
暫不支援自定義周、雙週等聚合時間粒度的起止時間計算規則。
如何處理多時區問題?¶
當前 TIMELINE / TIMESERIES 函式 + 估分插值欄位的組合表達,都是根據 UTC 時區 (GMT+0) 切分的 。在按天統計的場景,需要特殊處理切片時間點,即使用 TOSTARTOFDAY(TIMELINECURSOR()) 。
目的: 這將具體的時間統一處理為 00:00:00,僅按照日期精度進行判斷,確保條件篩選的有效性 。

