Business Objects 汇总计算:统计符合日期间隔要求的案件数量
通用实现逻辑
核心逻辑分三层执行,可规避多值错误:
- 按
case ID分组,提取对应所有日期并降序排序 - 取每个case排序后的前两位日期,计算两者的天数间隔
- 按
团队分组,统计间隔≤42天的case去重数量
不同工具的具体公式
1. Power BI(DAX 度量值)
假设源表命名为案件表,包含「团队」「case ID」「日期」三列:
符合条件案件数 = COUNTROWS( FILTER( VALUES('案件表'[case ID]), VAR 该案件所有日期 = CALCULATETABLE(VALUES('案件表'[日期])) VAR 最新日期 = MAXX(该案件所有日期, [日期]) VAR 次新日期 = MAXX(FILTER(该案件所有日期, [日期] < 最新日期), [日期]) RETURN // 若案件只有1条日期可自行补充规则,比如默认不计入/计入 NOT(ISBLANK(次新日期)) && DATEDIFF(次新日期, 最新日期, DAY) <= 42 ) )
使用方式:将「团队」拖到汇总表行字段,拖入上述度量值即可自动按团队统计。
2. Tableau(计算字段)
第一步:新建case级间隔计算字段,命名为案件最新日期间隔,计算依据选择case ID,并设置日期按降序排序:
DATEDIFF('day', LOOKUP(MAX([日期]), 1), MAX([日期]))
第二步:新建团队统计计算字段:
COUNTD(IF [案件最新日期间隔] <= 42 THEN [case ID] END)
使用方式:将「团队」拖到行功能区,拖入上述统计字段到文本即可。
3. Excel(365/2021 数组公式)
假设源数据在A:C列,汇总表E列为团队列表,F列对应统计值,F2单元格公式:
=COUNT( UNIQUE( FILTER(B:B, (A:A=E2)* (BYROW(UNIQUE(FILTER(B:B,A:A=E2)),LAMBDA(x, LET(d,SORT(FILTER(C:C,B:B=x),,-1), IFERROR(DATEDIFF(INDEX(d,2),INDEX(d,1),"d")<=42,0) ) )) ) ) )
按回车后自动溢出结果。
内容的提问来源于stack exchange,提问作者SmilingGM
相关产品推荐
相关产品推荐

