[已解决] 如何实现切片器选定月的最近12个月的走势图

  [复制链接]
查看127217 | 回复128 | 2021-2-18 20:37:01 | 显示全部楼层 |阅读模式
如图所示,切片器选择12月,卡片图显示12月的销售额,时间序列图显示近12个月的走势。

目前是筛选了年,才能实现12个月的走势图。

请教下各位大佬,是否能通过DAX实现?

谢谢。 10913111556161.png
10913111556165.zip (665.64 KB, 下载次数: 0)
回复

使用道具 举报

GOGOGO | 2021-2-18 20:43:02 | 显示全部楼层
这个要加一个没有关系的维度表
你现在的模型,因为auto-exists的原因,可能实现不了
回复

使用道具 举报

小白net | 2021-2-18 20:49:02 | 显示全部楼层
就像wdx223wdx223说的,如果slicer和viz共用同一列(如'日期[年月]),是达不到你期望的效果的,得借助于另一日期列。

我在'订单'表里新建了一个计算列
  1. 订单日期 YYYYMM = FORMAT('订单'[订单日期], "YYYYMM")
复制代码
度量值可以这么写
  1. Last 12M =

  2. VAR __min_dt = EDATE ( MIN ( '日期'[日期] ), -12 )

  3. VAR __max_dt = EDATE ( MAX ( '日期'[日期] ), 0 )

  4. VAR __p =

  5.   CALCULATETABLE (

  6.   DATESBETWEEN ( '日期'[日期], __min_dt, __max_dt ),

  7.   ALL ( '日期'[年月] )

  8.   )

  9. RETURN

  10.   CALCULATE ( [销售额], __p, ALL ( '日期'[年月] ) )
复制代码
10913111556162.png


10913111556166.rar (649.72 KB, 下载次数: 0)
回复

使用道具 举报

花落无声 | 2021-2-18 20:52:02 | 显示全部楼层
就像wdx223wdx223说的,如果slicer和viz共用同一列(如'日期[年月]),是达不到你期望的效果的,得借助于另 ...


感谢大侠指点,Edate的确是个很有用的函数。

同时,纠正了之前写过的一个DAX函数(用了辅助列),也再次说明理解上下文的重要性。
  1. 销售额_12个月 =

  2. VAR _MonthIndex =

  3. CALCULATE(

  4.   VALUES('日期'[索引]),

  5.   FILTER('日期','日期'[日期]=MAX('日期'[日期]))

  6. )

  7. Return

  8. CALCULATE(

  9.   [销售额],

  10.   ALL('日期'[日期]),

  11.   FILTER(ALL('日期'),'日期'[索引]>=_MonthIndex-11&&'日期'[索引]<=_MonthIndex)

  12. )
复制代码
回复

使用道具 举报

tangdou313 | 2021-2-18 20:57:02 | 显示全部楼层
就像wdx223wdx223说的,如果slicer和viz共用同一列(如'日期[年月]),是达不到你期望的效果的,得借助于另 ...


想请大侠再指教一下,能否将去年的近12个月和今年的近12个月放在同一行?

即,如图所示,将红框的返回值,显示在蓝框中?

谢谢。

PS:目的是为了能最终显示近12个月的同比增长走势。
10913111556163.png
10913111556167.zip (652.65 KB, 下载次数: 0)
回复

使用道具 举报

jylt2004 | 2021-2-18 21:02:02 | 显示全部楼层
10913111556164.png
回复

使用道具 举报

valerf | 2021-5-27 14:00:21 | 显示全部楼层
呵呵,低调,低调!
回复

使用道具 举报

gege | 2021-5-28 07:42:21 来自手机 | 显示全部楼层
边撸边过
回复

使用道具 举报

铁观音 | 2021-7-3 08:04:39 来自手机 | 显示全部楼层
感謝云发教育!!!
回复

使用道具 举报

tian_junwei | 2021-7-14 12:30:38 来自手机 | 显示全部楼层
嘘,低调。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则