Qlik Sense同期对比折线图:实现双周期数据X轴对齐需求
Qlik Sense同期对比折线图日期对齐解决方案
要实现两个周期的对应日期在X轴同一位置对齐,核心是把原始日期维度替换为「周期内天数序号」,让两个周期的第N天都映射到X轴的同一个位置。具体操作如下:
1. 创建计算维度(替换原orderdate维度)
在折线图的维度设置中,添加一个计算维度,用来生成两个周期的对应天数序号:
// 生成周期内的天数序号,当前周期与对比周期的对应天数序号一致 If( orderdate >= Min(orderdate) and orderdate <= Max(orderdate), // 当前周期:从1开始计数,如1月8日是第1天,1月9日是第2天... DayNumber(orderdate) - DayNumber(Min(orderdate)) + 1, // 对比周期:计算与当前周期长度一致的前置时间段,对应天数序号和当前周期匹配 DayNumber(orderdate) - DayNumber(Min(orderdate) - (Max(orderdate) - Min(orderdate) + 1)) + 1 )
设置完成后,将这个计算维度设为X轴,标签可自定义为「周期内天数」,让坐标轴更直观。
2. 优化当前周期度量
简化原有的当前周期度量(集合分析已限定日期范围):
Sum({<orderdate = {">=$(=Min(orderdate)) <=$(=Max(orderdate))"}>} sales)
3. 调整对比周期度量
确保对比周期的长度与当前周期完全一致,直接在度量中计算前置时间段:
// 对比周期为当前周期起始日往前推N天(N为当前周期天数)的时间段 Sum({<orderdate = {">=$(=Min(orderdate) - (Max(orderdate) - Min(orderdate) + 1)) <=$(=Min(orderdate)-1)"}>} sales)
4. 图表最终设置
- 把两个度量分别命名为「当前周期销售额」「对比周期销售额」
- 开启折线图的图例,方便区分两个周期
- X轴格式设置为数值型,确保序号连续显示
这样设置后,当你选择1月8日-14日(7天)时,对比周期1月1日-7日的第1天(1月1日)会和当前周期第1天(1月8日)对齐在X轴的「1」位置,以此类推,两条折线就能实现同期对比的对齐效果。
内容的提问来源于stack exchange,提问作者Narsim Rao
相关产品推荐
相关产品推荐

