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

制作动态排序的本周与上周来电数聚类条形图问题求助

问题解决:聚类条形图展示本周/上周工作日来电数

问题分析

你当前的度量值逻辑存在错误:MAXX(FILTER('Calendar', 'Calendar'[Date] <= TODAY() - 1), 'Calendar'[Date]) 等价于TODAY()-1(因为日历表的EndDate就是TODAY()-1),所以昨日-7仅取了上周的昨日单一天的数据,昨日-14取的是上上周的昨日数据,而非按每个工作日匹配上周的同工作日数据,这就是返回两周前/三周前数据的核心原因。

修正后的度量值

1. 本周工作日来电数

筛选出以昨日为截止日的当前周(周一为周起始,对应日历表WEEKNUM参数2)的所有工作日,计算对应来电数:

Call Count Current Week = 
VAR CurrentWeekNum = WEEKNUM(TODAY()-1, 2)
VAR CurrentYear = YEAR(TODAY()-1)
RETURN
CALCULATE(
    [Call Count],
    'Calendar'[WEEKNUM] = CurrentWeekNum,
    'Calendar'[Year] = CurrentYear,
    ALL('Calendar'[Date]) // 保留工作日维度的上下文
)

2. 上周同工作日来电数

匹配每个工作日对应的上周同工作日数据,同时兼容跨年周的特殊情况:

Call Count Previous Week = 
VAR CurrentWeekNum = WEEKNUM(TODAY()-1, 2)
VAR CurrentYear = YEAR(TODAY()-1)
// 处理跨年周(比如新年第一周)
VAR PreviousWeekNum = IF(CurrentWeekNum = 1, 52, CurrentWeekNum - 1)
VAR PreviousYear = IF(CurrentWeekNum = 1, CurrentYear - 1, CurrentYear)
RETURN
CALCULATE(
    [Call Count],
    'Calendar'[WEEKNUM] = PreviousWeekNum,
    'Calendar'[Year] = PreviousYear,
    'Calendar'[DayOfWeekNumber] = MAX('Calendar'[DayOfWeekNumber]), // 匹配同工作日
    ALL('Calendar'[Date])
)

动态排序实现

要实现“根据今日日期调整工作日排序”(比如今日周五,最左侧为周五,最右侧为周四),需创建动态排序度量值:

Dynamic Day Sort = 
VAR TodayWeekday = WEEKDAY(TODAY(), 2) // 周一=1,周日=7
VAR CurrentDayNum = MAX('Calendar'[DayOfWeekNumber])
// 排序规则:今日对应的工作日排第一,其余按周一到周日顺序排列
RETURN
IF(CurrentDayNum >= TodayWeekday, CurrentDayNum - TodayWeekday + 1, CurrentDayNum - TodayWeekday + 8)

配置步骤:

  • 将Calendar[DayOfWeekShort]作为图表X轴字段
  • 右键点击X轴字段 → 排序依据 → 选择度量值 → 选中Dynamic Day Sort
  • 设置排序顺序为升序,即可实现今日工作日在最左侧、依次向后排列的效果

最终图表配置

  1. 选择聚类条形图
  2. X轴:Calendar[DayOfWeekShort](已按动态排序度量值排序)
  3. Y轴:添加Call Count Current Week和Call Count Previous Week两个度量值
  4. 开启图例,区分本周/上周数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:12:11