目录
1.用计算表实现
2.用度量值+辅助表实现:
假设我们有张数据表,包含了一些产品,在两年间的销售数据(2010年和2011年):
我们想制作今年与去年的销量同比
一个折线图,显示每月的总销售数据做同比展示
一个堆积条形图,统计每种产品的同比销量 (提示:应该是“销量”,不是"数量",做完发现字错了,懒得改了)
这里介绍两种方法:
1.用计算表实现
分别以2010年(去年) 和 2011年(今年)为条件,过滤订单数据
去年表 = FILTER('订单明细表',YEAR('订单明细表'[订单时间])=2010)
今年表 = FILTER('订单明细表',YEAR('订单明细表'[订单时间])=2011)
然后与原始数据表建立联接:
页面上添加一个折线图,分别拖入字段:
可视化里,X轴只显示"日期层次结构"的"月",Y轴的字段双击可以修改名字
折线图就做好了。
对于堆积条形图,我们用原始的[订单明细表]的[产品名称],作为Y轴
然后,在[去年表] 和 [今年表] 里分别用度量值来统计销量,筛选条件是Y轴的产品名称。这里不能直接拖 [数量]列 到X轴让PBI自动汇总,会导致重复计算。让我们自己写度量值来实现::
今年数量 = CALCULATE(SUM('今年表'[数量]),'今年表'[产品名称]=SELECTEDVALUE('订单明细表'[产品名称]))
去年数量 = CALCULATE(SUM('去年表'[数量]),'去年表'[产品名称]=SELECTEDVALUE('订单明细表'[产品名称]))
页面上添加一个堆积条形图,分别拖入字段:
堆积条形图就做好啦。
2.用度量值+辅助表实现:
这个方法就比较繁琐了。
首先,添加一个月份表,它将应用于折线图的X轴:
按照下图的提示,给月份表设置一个排序,不然,折线图的X轴,会按照英文字母的顺序去排列月份
再添加一个产品表,用于堆积条形图的Y轴:
产品表 = DISTINCT('订单明细表'[产品名称])
添加两个度量值,分别统计今年和去年的销量,它们将应用于折线图,筛选条件是折线图的X轴的月份数据
今年销量 = CALCULATE(SUM('订单明细表'[数量]),YEAR('订单明细表'[订单时间])=2011,MONTH('订单明细表'[订单时间])=SELECTEDVALUE('月份表'[ID]))
去年销量 = CALCULATE(SUM('订单明细表'[数量]),YEAR('订单明细表'[订单时间])=2010,MONTH('订单明细表'[订单时间])=SELECTEDVALUE('月份表'[ID]))
再添加两个度量值,分别统计单个产品,今年和去年的销量,它们将应用于堆积条形图,筛选条件是条形图的Y轴的产品名称。
今年销量by产品 = CALCULATE(SUM('订单明细表'[数量]), YEAR('订单明细表'[订单时间])=2011 , '订单明细表'[产品名称] = SELECTEDVALUE('产品表'[产品名称]))
去年销量by产品 = CALCULATE(SUM('订单明细表'[数量]), YEAR('订单明细表'[订单时间])=2010 , '订单明细表'[产品名称] = SELECTEDVALUE('产品表'[产品名称]))
页面上添加折线图,分别拖入字段:
设置下排序:
页面上添加堆积条形图,分别拖入字段:
做好了,两种方法,仅供参考。