[已解决] 还在成长的群友们,做个题练练手哈

  [复制链接]
查看219256 | 回复169 | 2020-12-18 06:01:34 | 显示全部楼层 |阅读模式
大家下午好!
今天的工作做完了。进群和群友们一起成长,做个题练手哈

附档是近三年的销售表(只截取了一部分)
要求:
写度量值计算今年的销售增长量和增长率
用数据透视表展示,“品种”做为行,“月份”做为列,“年度”做为筛选。

有空的大家一起练习一起成长吧,感谢版主组建的平台,感谢平时很多老师的帮助。

10774111247556.7z (9.11 KB, 下载次数: 0)
回复

使用道具 举报

tv19791014 | 2020-12-18 06:08:34 | 显示全部楼层
抛砖引玉写了一段度量值,结果是错的。不怕大家笑,发给大家看看哈。
销售增长量 = CALCULATE(
  [销售量],
  FILTER(
  VALUES('Sheet1'[品种]),
  'Sheet1'[品种]=EARLIER('Sheet1'[品种])
  )
)

错误提示:EARLIER/EARLIEST 引用不存在的更早的行上下文。
10774111247551.png
回复

使用道具 举报

qinyi | 2020-12-18 06:13:34 | 显示全部楼层
群友勿喷,还需要老师指导
回复

使用道具 举报

阿熙 | 2020-12-18 06:19:34 | 显示全部楼层
糟糕,弄道题,结果自己做不出来了

下载七次了,也没有群友上传结果上来,可能真的很多朋友跟我一样,还在学习阶段。

哪位老师请你们出手相助一下啊,感谢,感谢
回复

使用道具 举报

小狼 | 2020-12-18 06:24:35 | 显示全部楼层
这个问题好像不简单,走过路过的各一位老师各位大神,请你们指点津。

我就想能看到各个产品的同期增长情况。
回复

使用道具 举报

发动机 | 2020-12-18 06:26:35 | 显示全部楼层
加个辅助列,建个日期表,用时间函数,不就好处理了吗
10774111247552.jpg
10774111247557.rar (90.37 KB, 下载次数: 0)
回复

使用道具 举报

阿文 | 2020-12-18 06:35:35 | 显示全部楼层
这个问题好像不简单,走过路过的各一位老师各位大神,请你们指点津。

我就想能看到各个产品的同期增长情 ...


我也做了个版本的,新建了日期表、按照理论上的BEST PRACTICE修改了一下销售记录(事实表)的表结构、建立了表关系等,具体请参考附件。
10774111247553.png


10774111247558.zip (62 KB, 下载次数: 0)
回复

使用道具 举报

liqbjs | 2020-12-18 06:38:35 | 显示全部楼层
加个辅助列,建个日期表,用时间函数,不就好处理了吗


历害了,感谢老手出手相助,向你们学习。
回复

使用道具 举报

dgbz | 2020-12-18 06:45:35 | 显示全部楼层
我也做了个版本的,新建了日期表、按照理论上的BEST PRACTICE修改了一下销售记录(事实表)的表结构、建 ...


历害了,感谢老手出手相助,向你们学习。

老师,你2点半还在为我排难解忧,你要多注意休息噢。再次表示感谢!
回复

使用道具 举报

volcano | 2020-12-18 06:50:36 | 显示全部楼层
历害了,感谢老手出手相助,向你们学习。

老师,你2点半还在为我排难解忧,你要多注意休息噢 ...


不客气,过奖了!我们共同探讨、学习!也谢谢你的关心!

以我先前学习的经验来看,中文的DAX学习资料十分有限,所以要想了解很多细节,还是需要查阅一些英文的网站,我个人推荐这个网站:https://dax.guide,由DAX界久负盛名的宗师级人物Marco Russo/Alberto Farrari(常被人合称the Italians)所创办,对所有DAX函数都有详细的解析及拓展讲解。

其实,你先前列的那个报错的公式,其实并没有看上去那么简单,
  1. 销售增长量 = CALCULATE(

  2.   [销售量],

  3.   FILTER(

  4.   VALUES('Sheet1'[品种]),

  5.   'Sheet1'[品种]=EARLIER('Sheet1'[品种])

  6.   )

  7. )



  8. 错误提示:EARLIER/EARLIEST 引用不存在的更早的行上下文。
复制代码
如果要真正研究起细节来还不容易(主要是各个函数所在的估值上下文Evaluation Context/EC),1. CALCULATE()的计算顺序是怎样的?
2. CALCULATE()使的EC发生了什么样的上下文转换(Context Transition)?
3. 这里的FILTER()的EC是怎样的?
4. VALUES('Sheet1'[品种])的计算结果是什么?
5. 既然EARLIER('Sheet1'[品种])所引用的“更早的行上下文”不存在,那么是否存在“当前的行上下文”?
。。。
这些细节,你不妨现在记下自己的答案,待学习过一阵后,再回头来看看,看一看对这些问题的了解有没有更加深入,这二者的差异其实就是这期间的成果。我自己就是这样,前后隔了差不多半年时间,才差不多解决了一个“小问题”,也通过前后对比,切实体会到了自己对DAX理解的逐步加深。

我们共同探讨、学习!Enjoy DAX!
回复

使用道具 举报

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

本版积分规则