如何在销售数据停滞时让折线图在指定位置停止绘制
折线图在售票停滞时停止绘制的两种实现方法
方法一:修改度量值,用IF判断返回空值
直接在你现有的累计求和度量值里加逻辑判断:先算出当日的累计售票,再算出前一天的累计售票,要是两者相等(说明数据停滞),就返回BLANK(),折线图会自动跳过空值,实现停止绘制的效果。
修改后的DAX代码:
累计售票 = VAR 当前天数 = MAX('Sales'[Days To Event]) VAR 当日累计 = CALCULATE( SUM('Sales'[Apr-2023]), FILTER(ALL('Sales'), 'Sales'[Days To Event] >= 当前天数) ) VAR 前一天天数 = 当前天数 + 1 -- 注意:如果你的Days To Event是数值越大离活动越远(比如第200天比第199天早),就用+1;要是数值越小越早,就改成-1,根据实际数据逻辑调整 VAR 前日累计 = CALCULATE( SUM('Sales'[Apr-2023]), FILTER(ALL('Sales'), 'Sales'[Days To Event] >= 前一天天数) ) RETURN IF(当日累计 = 前日累计, BLANK(), 当日累计)
方法二:新增计算列,用筛选器过滤停滞日期
先给Sales表加一个计算列,标记当天是否处于售票停滞状态,再用这个列做页面筛选,只显示未停滞的日期。
- 创建计算列的DAX代码:
是否停滞 = VAR 当日累计 = CALCULATE( SUM('Sales'[Apr-2023]), FILTER(ALL('Sales'), 'Sales'[Days To Event] >= 'Sales'[Days To Event]) ) VAR 前一天天数 = 'Sales'[Days To Event] + 1 -- 同样根据实际数据逻辑调整+1或-1 VAR 前日累计 = CALCULATE( SUM('Sales'[Apr-2023]), FILTER(ALL('Sales'), 'Sales'[Days To Event] >= 前一天天数) ) RETURN IF(当日累计 = 前日累计, "是", "否")
- 在报表页面添加筛选器,选择
是否停滞列,只保留否的选项,折线图就只会展示未停滞的日期段。
内容的提问来源于stack exchange,提问作者charterd
相关产品推荐
相关产品推荐

