制作动态排序的本周与上周来电数聚类条形图问题求助
问题解决:聚类条形图展示本周/上周工作日来电数
问题分析
你当前的度量值逻辑存在错误: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 - 设置排序顺序为升序,即可实现今日工作日在最左侧、依次向后排列的效果
最终图表配置
- 选择聚类条形图
- X轴:
Calendar[DayOfWeekShort](已按动态排序度量值排序) - Y轴:添加
Call Count Current Week和Call Count Previous Week两个度量值 - 开启图例,区分本周/上周数据
内容的提问来源于stack exchange,提问作者AndreasKamper
相关产品推荐
相关产品推荐

