层次坐标

层次坐标

扩展单元格运算时需要使用层次坐标来表示单元格扩展后的表格位置

相对层次坐标

  • 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添加样式效果

猜你喜欢

转载自www.cnblogs.com/inmeditation/p/12142303.html