某电器商场2010年5月至11月的部分销售记录单,如图所
要根据这份记录单进行多条件的统计工作,例如计算2010年6月份的”冰箱”销售总量,
在数据表以外的区域中建立条件区域,上述统计要求实际包含了三个条件:日期大于等于6月1日、日期小于7月1日以及品名为”冰箱”。参照这三个条件,建立的条件区域如图所示。
根据这个条件区域就可以使用数据库函数建立条件求和公式:
=DSUM(B:D,D1,F1:H2)
其中的F1:H2单元格区域就是指图中的条件区域。
DSUM函数是一个数据库函数,它的语法如下:
DSUM(database,field,criteria)
第一参数database是数据库所在的单元格区域,其中将首行标识为字段名;第二参数field是指需要进行统计的字段,此例中要对数量进行求和,因此使用 D1 单元格的字段”数量”;第三参数criteria需要指定进行统计时包含统计条件的单元格区域,此例中即事先建立的F1:H2条件区域。
数据库函数是一类高效的统计函数,使用此类函数时需要在公式以外单独设立一个条件区域,在条件区域中排布好计算条件,其中横向布放的条件表示”逻辑与”关系(即须同时满足),纵向布放的条件表示”逻辑或”关系(即可任一满足)。因此,对于复杂关系的多条件统计工作,使用数据库函数不需要设计非常复杂的公式,而是只需要将各类条件一一列举即可轻松完成。
但是,由于数据库函数需要引用一个相对固定的条件区域,因此在同时进行多种分类的条件统计时,很难用复制数据库函数公式的方法来实现。而借助【数据表】工具只需一个公式就可以进行多变量取值的分析功能,可以很好地解决上述难题。
仍以上述数据表为例,假定要同时统计显示四类商品在每个月的销售数量,可以参照如下操作。
在 F5:F8 单元格区域中填入四类主要商品的品名,同时在 G4:M4单元格中填入2010年5月~11月的各月首日日期,形成两组变量取值。两组行列变量的交叉单元格内即为相应月份的某商品的销售数量存放位置。
改造F2:H2的条件区域,使其产生对行列两个变量的引用。F2、G2和H2单元格内分别输入以下公式:
F2=”>=”&E2
G2=”<=”&EOMONTH(E2,0)
H2=E3
上述三个公式中所引用的E2和E3单元格并没有实际含义,只是为了与【数据表】工具的引用行和引用列进行关联。E2代表了需要从【数据表】中 G4:M4 单元格引用的日期数据,而 E3 则代表了需要从【数据表】中F5:F8单元格引用的品名数据。
EOMONTH函数是一个日期函数,它可以返回某个月的最后一天,当其第二参数为0时即表示返回当月的最后一天
在 F4 单元格即【数据表】工作区域的左上角单元格内输入【数据表】运作所需的运算公式,就是之前所用到的数据库函数求和公式:
=DSUM(B:D,D1,F1:H2)
选定F4:M8单元格区域,调出【数据表】对话框。在【输入引用行的单元格】编辑栏中输入行方向上变量所引用的单元格地址”$E$2″;在【输入引用列的单元格】编辑栏中输入列方向上变量所引用的单元格地址”$E$3″,最后单击【确定】按钮完成操作。完成后的显示如图所示
使用上述方法可以拓展数据库函数的应用,但仍需注意适用条件:
由于【数据表】最多支持两个变量的同时分析,因此在构建条件区域时最多只能对两个字段变量进行引用。如果条件中所引用的字段变量超过两个就不再适用这样的方法。例如此例中虽然包含了3个条件,但只对”日期”和”品名”两个字段进行了引用,仍可以满足适用条件。