历史版本6 :双向扩展层次坐标 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概念编辑

1.1 应用场景

当数据同时由纵向扩展和横向扩展而来,也就是 交叉表 的情况下,层次坐标该怎么写呢?

  • 相对层次坐标

Snag_5a07478.png

  • 绝对层次坐标

Snag_5a07c57.png

1.2 公式写法

双向扩展场景下,不管是相对层次坐标还是绝对层次坐标,都要使用纵向和横向的组合写法,且要遵循先纵向后横向的原则。

层次坐标类型公式写法计算结果参数解释
相对层次坐标
Cellx[Celly:-k ;Cellz:p]
第 p 列相对偏移 -k

Cellx:横纵向同时扩展出来的交叉数据单元格

Celly:纵向扩展单元格,Cellx 的左父格

Cellz:横向扩展单元格,Cellx 的上父格

k:数字

p:数字

Cellx[Celly:+k ;Cellz:p]第 p 列相对偏移 +k
Cellx[Celly:p ;Cellz:-k]第 p 行相对偏移 -k
Cellx[Celly:p ;Cellz:+k]
第 p 行相对偏移 +k
绝对层次坐标Cellx[Celly:k ;Cellz:p]第 k 行第 p 列交叉处的值
Cellx[Celly:k ;Cellz:!-p]第 k 行倒数第 p 列交叉处的值

2. 新建示例模板编辑

此处我们新建一个交叉报表,用于下面演示双向扩展时相对层次坐标和绝对层次坐标的写法。

2.1 准备数据

新建数据集 ds1,SQL 语句为:SELECT * FROM 销量,如下图所示:

1617759916588420.png

2.2 设计表格

产品字段拖到 B1 单元格,设置为横向扩展。

销售员字段拖到 A2 单元格,设置为纵向扩展。

销量字段拖到 B2 单元格,设置为不扩展,此时 B2 单元格就是根据 B1 和 A2 双向扩展出来的数据。

1617760070123915.png

2.3 效果预览

交叉表设计好后,分页预览看下效果:

Snag_1e23db27.png

3. 相对层次坐标写法编辑

按照下图所示在相应单元格中填写相对层次坐标的公式:

1617760681951054.png

实际计算结果如下图所示:

1617760756436412.png

下面给出每个层次坐标的解释:

所在单元格公式公式解析最终效果
C2B2[A2:-1 ;B1:1]

;B1:1:横向绝对层次坐标,是为了锁定第一列

A2:-1:纵向相对层次坐标,是为了实现纵向负偏移

第一列相对偏移 -1
D2B2[A2:+1 ;B1:2]

;B1:2:横向绝对层次坐标,是为了锁定第二列

A2:+1:纵向相对层次坐标,是为了实现纵向正偏移

第二列相对偏移 +1
B3B2[A2:1 ;B1:-1]

A2:1:纵向绝对层次坐标,是为了锁定第一行

;B1:-1:横向相对层次坐标,是为了实现横向负偏移

第一行相对偏移 -1
B4B2[A2:2 ;B1:+1]

A2:2:纵向绝对层次坐标,是为了锁定第二行

;B1:+1:横向相对层次坐标,是为了实现横向正偏移

第二行相对偏移 +1

4. 绝对层次坐标写法编辑

按照下图所示在相应单元格中填写绝对层次坐标的公式,其中 B4~B6 都设置为不扩展,且左父格和上父格都设置为无。

1617761829891426.png

实际计算结果如下图所示:

1617761996318453.png

下面给出每个层次坐标的解释:

所在单元格公式公式解析最终效果
B4B2[A2:4 ;B1:2]

A2:4:纵向绝对层次坐标,锁定第四行

;B1:2:横向绝对层次坐标,锁定第二列

返回第四行和第二列交叉处的值
B5B2[A2:6 ;B1:4]

A2:6:纵向绝对层次坐标,锁定第六行

;B1:4:横向绝对层次坐标,锁定第四列

返回第六行和第四列交叉处的值
B6B2[A2:!-1 ;B1:!-1]

A2:!-1:纵向绝对层次坐标,锁定倒数第一行

;B1:!-1:横向绝对层次坐标,锁定倒数第一列

返回倒数第一行和倒数第一列交叉处的值