11.5 交叉表
11.5.1 交叉表举例:销售日报
如下图所示的地区销售汇总表是一种常见的统计报表样式。它有一个特点:右下方的矩形区域C4:G11中的每个单元格,都是同样的数据类型,都表达一个意思----某地区某产品的销售额。至于哪个单元格里的数字是哪种产品和哪个地区的销售额,则由该单元格所处的行(对应产品)和列(对应地区)决定。

图 11‑25交叉表的例子
这种样式的统计表,称为“交叉表”。
在上面的例子中,包含数据的区域是B3:G11,其最上面一行的内容表示地区,最左侧的列表示产品名称,从C4:G11的矩形区域表示销售额。定义成数据表就是:
产品名称 |
大区 |
销售额 |
对应单元格 |
白铁皮 |
东北 |
8500 |
C4 |
白铁皮 |
华南 |
40000 |
F4 |
薄板 |
东北 |
20200 |
C5 |
薄板 |
华北 |
150000 |
D5 |
花纹钢板 |
东北 |
10000 |
C6 |
角钢 |
华北 |
320000 |
D7 |
… |
… |
… |
… |
… |
… |
… |
… |
11.5.2 定义交叉表
新建模板《地区销售汇总》,表样如图11-16所示。在其上定义单一数据项的表“地区销售汇总_主表”:
主键 |
区域 |
字段名 |
数据类型 |
必填 |
填写规范 |
其它 |
√ |
C2 |
年月 |
日期 |
√ |
|
|
按以下步骤操作,定义明细表:
- 选中区域 C4:G8 ,右击鼠标,选择弹出菜单“定义重复数据项”。
- 弹出对话框,如图,单击【交叉表】,选中“数据区域可向下扩展”,其它默认值不变,按【下一步】。

图 11‑26定义交叉表
- 选择“组成新数据表”,命名为“地区销售汇总 _ 明细”,按【下一步】。
- 对话框显示如下:

图 11‑27定义交叉表
- 更改字段名与数据类型,结果如下:

图 11‑28定义交叉表
- 点击【下一步】,点击【完成】。
![]() |
11.5.3 交叉表产生的数据
针对交叉表所定义的明细数据表,其中字段分三类,一是上方标题行对应的字段,称为列标字段(因为其决定了列);二是左侧标题列对应的字段,称为行标字段(因为其决定了行);三是右下方的矩形区域对应的字段,成为数据字段。数据字段只能有一个,列标或行标字段可以有多个。在本例中,“大区”是列标字段, “产品名称”是行标字段,“销售额”是数据字段。
手工填制一张地区销售汇总,保存后,到我的工作台中查看所产生的数据,如下图所示:

图 11‑29
由此可见,填制交叉表时,其数据字段对应区域内的每个单元格,都会产生一条记录。
![]() |
11.5.4 用表间公式填充交叉表
下面我们来定义表间公式,完成地区销售汇总表的自动统计。
先分析一下问题。我们的目的是统计销售额。销售额的发生是源自订单,所以表间公式的来源数据应该是订单。因为要按地区分别统计销售额,所以还要确定每份订单应归属哪个大区。订单上并未直接指明地区,但指明了订货的客户,而哪个客户归属哪个大区,在“客户登记表”中可以查到的,所以为了正确地统计出各地区的销售额,需要把“订单”和“客户登记表”结合起来,需要用到表间关联。
最后定义的表间公式如下:
第一条表间公式,提取所有的产品名称,填充到交叉表的左侧,注意此表间公式的执行方式是“新建打开时”

图 11‑30
第二条表间公式,提取指定月份的订单信息,订单表和客户登记做关联,得到的结果分别对“地区”和“产品名称”做按行列匹配,把合计的金额填充到交叉表的数据区域中。

图 11‑31
![]() |