You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按年周汇总SWITCH度量值并与目标值进行对比?

按年周汇总项目工时并对比预算实现方案

现有基础

目前已实现度量值Daily_Hours,可将项目总工时平均分配至项目周期内的每日,项目起止日期外的日期工时为0。同时通过Daily_Hours_Visual度量值,完成了以项目ID为行、Calendar_Table日期层级为列的矩阵可视化,且行总计计算逻辑正确。

项目数据表

项目ID总工时开始日期结束日期
11002023年1月1日2023年1月9日
2502023年1月5日2023年1月30日
32002023年1月10日2023年1月29日
4752023年1月16日2023年2月3日
51252023年2月2日2023年2月21日

现有度量值

每日工时分配度量值

Daily_Hours = 
VAR current_day = CALCULATE(MAX(CALENDAR_TABLE[Date]))
VAR start_date = CALCULATE(MAX(Project_Table[Start Date]))
VAR end_date = CALCULATE(MAX(Project_Table[End Date]))
VAR date_diff = CALCULATE(DATEDIFF(start_date, end_date, DAY))
VAR daily = DIVIDE(CALCULATE(MAX(Project_Table[Total Work Hours])), date_diff)
RETURN
SWITCH(TRUE(),
    (current_day >= start_date && current_day <= end_date) = False, 0,
    daily
)

可视化用度量值(修正行总计)

Daily_Hours_Visual = 
VAR __table = SUMMARIZE(Project_Table, Project_Table[Project ID], "_VALUE", [Daily_Hours])
RETURN
IF(HASONEVALUE(Project_Table[Project ID]), [Daily_Hours], SUMX(__table, [_VALUE]))

需求实现:按年周汇总并对比预算

步骤1:为日历表添加年周计算列

若Calendar_Table中没有年周字段,可添加以下计算列(二选一即可):

  • 常规年周格式:
年周 = FORMAT(CALENDAR_TABLE[Date], "yyyy第ww周")
  • ISO标准年周格式:
ISO年周 = "ISO " & FORMAT(CALENDAR_TABLE[Date], "yyyy-\WW")

步骤2:创建年周汇总工时度量值

用于计算单年周内的总工时:

周汇总工时 = 
SUMX(
    SUMMARIZE(
        CALENDAR_TABLE,
        CALENDAR_TABLE[Date],
        "每日工时", [Daily_Hours]
    ),
    [每日工时]
)

步骤3:创建预算对比相关度量值

假设预算阈值为100,可创建以下两个度量值:

预算状态判断

预算状态 = 
VAR 周总工时 = [周汇总工时]
VAR 预算阈值 = 100 -- 可替换为参数或表中存储的动态预算值
RETURN
SWITCH(TRUE(),
    周总工时 <= 预算阈值, "在预算内",
    周总工时 > 预算阈值, "超出预算",
    "无数据"
)

工时与预算差值

工时预算差值 = [周汇总工时] - 100

可视化配置

  1. 新建矩阵或表格可视化组件:
    • 行/列区域:选择Calendar_Table中的年周字段
    • 值区域:添加周汇总工时、预算状态、工时预算差值(按需选择)
  2. 若需按项目分组查看年周汇总,可将Project_Table[项目ID]添加到行/列区域。

内容的提问来源于stack exchange,提问作者Knovolt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:45:34