Excel中包含了一些工作表函数,用于对存储的列表或数据库中的数据进行分析,这些通数统称为数据库函数。由于这些函数都以字母D开头,又被称为D函数。
以字母D开头的12个数据库函数
数据库函数与高级筛选较为相似,区别在于高级筛选是根据一些条件筛选出相应的数据记录,数据库函数则是根据条件进行分析与统计。
Excel中有12个标准的数据库函数,都以字母D开头,常用数据库函数与主要功能说明如下表所示。
函数 | 主要功能说明 |
DAVERAGE | 返回所选数据库条目的平均值 |
DCOUNT | 计算数据库中包含数字的单元格的数量 |
DCOUNTA | 计算数据库中非空单元格的数量 |
DGET | 从数据库提取符合指定条件的单个记录 |
DMAX | 返回所选数据库条目的最大值 |
DMIN | 返回所选数据库条目的最小值 |
DPRODUCT | 将数据库中符合条件的记录的特定字段中的值相乘 |
DSTDEV | 基于所选数据库条目的样本估算标准偏差 |
DSTDEVP | 基于所选数据库条目的样本总体计算标准偏差 |
DSUM | 对数据库中符合条件的记录的字段列中的数字求和 |
DVAR | 基于所选数据库条目的样本估算方差 |
DVARP | 基于所选数据库条目的样本总体计算方差 |
这12个数据库函数的语法与参数完全一致,统一如下。
数据库函数(database,field,criteria)
其中,数据库函数参数的说明如下表所示
数据库函数具有以下特点。
(1) 运算速度快。
(2)支持多工作表的多重区域引用。
(3)可以较为方便直观地设置复杂的统计条件。
(4)database和criteria参数只能使用单元格区域,不支持内存数组。
参数 | 说明 |
database | 构成列表或数据库的单元格区域。 数据库是包含一组相关数据的列表,其中包含相关信息的行为记录,而包含数据的列为字段。列表的第一行包含每一列的标签。 |
field | 指定函数所使用的列。 输入两端带双引号的列标签,如“使用年数”或“产量”;或是代表列表中列位置的数字(不带引号):1表示第一列,2表示第二列,依此类推。 |
criteria | 包含指定条件的单元格区域。 可以为参数指定criteria任意区域,只要此区域包含至少一个列标签,并且列标签下至少有一个为列指定条件的单元格。 |
数据库函数的基础用法
1 第二参数field为列标签
例 统计销售数据
如下图所示,A1:H19为构成列表或数据库的单元格区域database,J1:J2为包含指定条件的单元格区域criteria。
在J5单元格中输入以下公式,计算“员工部门”为“蜀国”的“人数”。
=DCOUNTA(A1:H19,"姓名",J1:J2)
在J8单元格中输入以下公式,计算“员工部门”为“蜀国”的“销售总数量”。
=DSUM(A1:H19,"销售数量",J1:J2)
在J11单元格中输入以下公式,计算“员工部门”为“蜀国”的“人均销售金额”。
=DAVERAGE(A1:H19,销售金额”,J1:J2)
在J14单元格中输入以下公式,计算“员工部门”为“蜀国”的“个人最小销售数量”。
=DMIN(Al:H19,"销售数量",J1:J2)
在J17单元格中输入以下公式,计算“员工部门”为“蜀国”的“个人最大销售金额”。
=DMAX(A1:H19,销售金额”,J1:J2)
2 第二参数field为表示列位置的数字
例 第二参数field为表示列位置的数字
如下图所示,在J5单元格中输入以下公式,计算“岗位属性”为“武”的“人数”。
=DCOUNTA(A1:H19,2,J1:J2)
在J8单元格中输入以下公式,计算“岗位属性”为“武”的“销售总数量”。
=DSUM(A1:H19,7,J1:J2)
在J11单元格中输入以下公式,计算“岗位属性”为“武”的“人均销售金额”。
=DAVERAGE (A1:H19,8,J1:J2)
在J14单元格中输入以下公式,计算“岗位属性”为“武”的“个人最小销售数量”。
=DMIN(A1:H19,7,J1:J2)
在J17单元格中输入以下公式,计算“岗位属性”为“武”的“个人最大销售金额”。
=DMAX(A1:H19,8,J1:J2)
其中,数字7代表database中的第7列,即“销售数量”列;同样,数字8代表“销售金额”列。
3数据库区域第一行标签为数字
例 数据库区域第一行标签为数字
如下图所示,D1:11单元格代表1~6月,D2:18单元格代表每人每月的销售数量。
在K5单元格中输入以下公式,计算4月蜀国的销售总数量。
=DSUM(A1:I8,4,K1:K2)
此时求得的结果为“200”,并未得到4月份的正确数据,这个“200”是1月份蜀国的销售总数量,即database中第4列的数据。
在K8单元格中输入以下两种公式,都可计算出正确的结果。
=DSUM(A1:I8,“4",K1:K2)
将第二参数写为文本形式“4”,按列标签计算。
=DSUM(A1:I8,MATCH(4,A1:I1,),K1:K2)
首先通过“MATCH(4,A1:l1,)”部分得到4月份在database中位于第7列;然后再通过DSUM函数求得database 中第7列的数据。