倾斜图可以展示单指标不同时期的变化,既能展示值的大小变化,也能同时展示排名的变化。
一、准备数据
源数据
处理数据(将源数据“当前累计值”和“同期累计值”调整为一列,并新增字段“期间”以区分当前和同期)
如果数据量过大,且Excel并没有友好的处理字符串工具。所以小编选择ETL工具Kettle,来进行两个字段的标识+追加+拆分,来达到以上这种效果。(备注:Tableau,本身对数据的处理能力还是比较薄弱,一定要配一款比较省心的趁手的ETL工具来做结合使用)
办法可能土了点,但是比较实用!如果有更好的办法,请告诉小编!
Kettle数据处理流程图
大致思路,通过js代码,把当期累计值字段里面的值,都批量变成(当期,33)、(当期,26)
同期累计值同理,然后再把两个字段通过从一个字段末尾追加的方式,合并在一起。然后在进行以逗号进行拆分并输出!
最终通过Kettle 输出的结果文件
STEP1:创建基本框架
1)创建排名字段,公式为:index(),将其拖拽到行上。
2)将字段“期间”拖拽到列功能区,将字段‘单位’拖放到‘标记’中。
3)对字段“排名”定义表计算。
4)标记中把自动调整成:线。
如下图
STEP2:添加标签
1)创建一个新的排名字段“排名(2)”,计算公式为17-index()
2)将字段“单位” “累计值” 和 “排名(2) 分别拖拽到“标签中”
3)设置“排名(2)”的表计算,与“排名”的设置方式的一致。
4)调整标签的格式
如下图:
STEP3:设置图形的颜色和形状
1)增加“变化量”计算字段:LOOKUP(SUM([累计值]),LAST()) - LOOKUP(SUM([累计值]),FIRST())
来表示当前值与同期值的差异。
2)增加“增加/减少”计算字段来表示“变化量”的正负:IF [变化量]>0 then '增加' ELSEIF [变化量]<0 then '减小' ELSE '不变' END
3)创建字段“变化量绝对值”来表示“变化量”的绝对值:ABS([变化量])
如下图: