【报表设计】--层次坐标和父子格设置
概念
层次坐标有点像偏移量,它能够在一个单元格内获取另外一个单元格里的数据,就这样。
它的功能主要是用来比较数据。
比如给你1季度和2季度的手机销量,让你计算百分比涨幅,环比涨幅,利润率等,像这样的操作都是在某个单元格,获取其他单元格的值,然后和自己相比。
注意一点的是:A1[A1:2]
是取正向第二个数,而A1[A1:+2]
是前移2个数。
正负号不能省略
写个层次报表
最终效果就是上面的表格展示,先解释一下名词.
比较,当前月与前一个月的差值,比如2月份和1月份金额的差值。
占比,是指每个月的金额,占12个月总金额的比率。
环比,是指当前月与前一个月的比率。
1.新建数据集
select strftime('%m',订购日期) as 月份, 应付金额
from 订单
where strftime('%Y',订购日期) = '2011'
设置格式:略
拖动数据的时候,由于B2的左父格是A2,也就是说,B2相对于A2,进行group by,而且要统计整个月份的金额,因此可以对B2进行求和运算。
同时,设置格式为数字,保留2位小数。
比较的公式是:IF(&A2>1,B2-B2[A2:-1],0)
这个东西,有点类似java的三元表达式,如果满足条件1,则2,否则3。
1月份没有可比较的对象,所以它的比较,占比,环比都是0.
比较就是B3-B2,B2-B1,为什么公式, B2-B2[A2:1]
能够动态表达这个意思?
B2[A2:-1]
: B2 表示取B2单元格里的值。取哪个值?由中括号[]
里的A2:-1决定,表示正向第一个数。
这里用的是相对坐标,取单元格扩展后,当前位置,某一偏移量上的值【相对后移一位】
占比:IF(&A2>1,B2/SUM(B2[!0]),0)
,这个很好理解
环比:IF(&A2>1,B2/B2[A2:-1],0)
,如果理解了比较,这个不在话下。
为了加深理解,再加上一列,上一个值:B2[A2:-1]
预览下效果,看看:
我忽然想了一下,为什么B2列的上一个值是 B2[A2:-1]
, 却不是 B2[B2:-1]
,
于是我额外增加了一列,公式为: B2[B2:-1]
它的值和B2全列一模一样。
难道[]里的条件只能以左父格开头?