层次坐标
扩展单元格运算时需要使用层次坐标来表示单元格扩展后的表格位置
相对层次坐标
- cellx[celly:-z] 相对后移
- cellx[celly:+z] 相对前移
绝对层次坐标
B2的左父格设置为'无'
- cellx[celly:z] 正向获取第z个数
- cellx[celly:!-z] 反向获取第z个数
扩展单元格运算时常用的公式
语法 | 描述 | 举例 |
---|---|---|
cellx[!0] | 获取单元格cellx扩展出的所有值 | A1[!0] |
cellx[!10]{条件表达式} | 该范围内满足某些条件的值 | A1[!0]{A1!=3} |
&cellx | 获取单元格扩展后每个值对应的位置 | &A1 |
$cellx | 获取单元格的值 | $A1 |
cellx[!0]
cellx[!10]{条件表达式}
&cellx
B2的左父格需要设置为A2(默认)
$cellx
动态格间运算
使用层次坐标进行跨行运算,跨组运算,集合运算等
了解比较,占比,环比概念
比较:将单元格扩展出的每个值与第一个值进行比较
占比:计算单元格扩展出的每个值在总量中占据的比例
环比:计算每行数据与上一行数据的比率
练习1
实现效果如下
1添加数据库查询
SELECT strftime('%m',订购日期) 日期,
sum(应付金额) 金额
FROM 订单
where strftime('%Y',订购日期)='2011'
group by 日期;
分组求和也可以放到单元格元素中操作
2设置语法
比较B2-B2[A2:1]
占比B2/sum(B2[!0])
环比if(&A2>1,B2/B2[A2:-1],0)
3设置相关样式,格式即可
练习2
相关概念
逐层累计
分组报表中,每一组数据逐行累计
跨层累计
分组报表中,所有数据跨行累计,跨组时接着上一组累计结果继续累计
实现下图样式
1添加数据库查询
select strftime('%Y',订购日期) 年,
strftime('%m',订购日期) 月,
应付金额
from 订单
where strftime('%Y',订购日期) in ('2010','2011')
2设置汇总求和
选中C2单元格设置单元格元素
3编写相关查询
逐层累计C2+D2[B2:-1]
跨层累计if(&B2>1,C2+E2[B2:-1],C2+E2[A2:-1,B2:!-1])
求和COUNT(C2[!0]{A2=$A2 && C2>2500})
4设置左父格
A3的左父格设置为A2
5添加样式效果