PowerBI折线图X轴替换为所选日期的日期差数值范围求助
PowerBI折线图X轴改为以所选日期为中心的数值范围问题
当前设置
- 折线图展示特定指标随时间变化的计数,使用DAX度量值
Dates to Show - 该度量值根据切片器所选日期和用户选择的天数计算日期区间,确定X轴的日期范围
- Y轴显示指标的计数数值
- 已创建断开表
NumericDateRange,用GENERATESERIES(-1500, 1500, 1)生成数值范围 - 选中
HolidayName筛选器时,2021、2022、2023年的三个折线图会随HolidayList[CallDate]切片器值变化;Select No Of Days to Show切片器控制所选日期前后显示的天数
Dates to Show的DAX代码:
Dates to Show = VAR _SelectedDate = SELECTEDVALUE(HolidayList[CallDate]) VAR _NumDaysToShow = 'Select No Of Days to Show'[Select No Of Days to Show Value] VAR _NumericRange = GENERATESERIES(-_NumDaysToShow, _NumDaysToShow, 1) VAR _Dates = DATESBETWEEN( 'Calender Months to Display'[Date], _SelectedDate + MINX(_NumericRange, [Value]), _SelectedDate + MAXX(_NumericRange, [Value]) ) VAR _Result = CALCULATE( [CountMeasure], REMOVEFILTERS('HolidayList'), KEEPFILTERS(_Dates), USERELATIONSHIP('HolidayList'[CallDate], 'Calender Months to Display'[Date]) ) RETURN _Result
期望结果
X轴不再显示具体日期,改为以所选日期为中心的数值范围:0代表所选日期,负数代表所选日期之前的天数,正数代表之后的天数。例如,所选日期为2023年5月29日,选择显示7天,则X轴显示-7、-6……0……6、7。
已尝试操作
- 创建断开表
NumericDateRange,用GENERATESERIES(-1500, 1500, 1)生成数值范围 - 将该表用于折线图的X轴以显示数值范围
遇到的问题
X轴显示了数值范围,但折线图无曲线或线条显示。断开表未与数据模型正确交互,使用日期作为X轴时图表正常,切换为数值范围则无数据。
解决方案
问题核心是原度量值未将NumericDateRange的数值与实际日期建立关联,需修改度量值让每个数值对应到所选日期偏移后的日期,再计算对应指标:
- 修改
Dates to Show度量值:
Dates to Show = VAR _SelectedDate = SELECTEDVALUE(HolidayList[CallDate]) VAR _CurrentOffset = SELECTEDVALUE(NumericDateRange[Value]) VAR _TargetDate = _SelectedDate + _CurrentOffset VAR _NumDaysToShow = SELECTEDVALUE('Select No Of Days to Show'[Select No Of Days to Show Value]) -- 仅在设定天数范围内返回数据 VAR _IsInRange = ABS(_CurrentOffset) <= _NumDaysToShow VAR _Result = IF( _IsInRange, CALCULATE( [CountMeasure], REMOVEFILTERS('HolidayList'), 'Calender Months to Display'[Date] = _TargetDate, USERELATIONSHIP('HolidayList'[CallDate], 'Calender Months to Display'[Date]) ), BLANK() ) RETURN _Result
调整折线图设置:
- 将X轴字段改为
NumericDateRange[Value] - Y轴使用修改后的
Dates to Show度量值 - 可在可视化面板的X轴设置中,手动调整范围为
- _NumDaysToShow到_NumDaysToShow,隐藏超出范围的数值
- 将X轴字段改为
验证基础逻辑:
- 确认
Calender Months to Display表包含所选日期偏移后的所有日期 - 检查
HolidayList[CallDate]与Calender Months to Display[Date]的关系配置正确(即使是不活跃关系)
- 确认
内容的提问来源于stack exchange,提问作者Rojalin Mohanty
相关产品推荐
相关产品推荐

