数据库函数是将Excel中的表格当作数据库使用。使用“类数据库”的方法进行计算,在合适的场景下,可以降低工作的复杂度。

还在介绍的这几个函数,从名字上就可以看出,它们的作用跟SUM,COUNT,COUNTAAVERAGEMAX,MIN等函数类似。

我们首先以DSUM函数为例,详细介绍。

DSUM

DSUM函数的作用是从数据库(即表格)中返回一系列记录的值的合计,这些记录需要满足给定的条件。

语法如下:

=DSUM(数据区域,字段,条件)

其中,
“数据区域”:当作数据库的Excel表格(不需要是超级表)。
“字段 “:需要进行加总合计运算的字段,可以是字段名(列名,直接文本输入时需要用双引号括起来)或者列字段的序号,或相关引用。
“条件”:条件区域,用来指示需要筛选的记录必须满足的条件。

下面的图示解释了这个函数的使用方法:

公式中的求和字段“数量”可以用序号代替:

=DSUM(B4:F11,4,H4:I6)
数据库

作为数据库的表格没有太多限制,但是必须将首行作为标题行。

条件

条件区域是包括DSUM函数在内的数据库函数的关键。条件区域可以是任意区域,但是必须满足:

  • 至少有一列,

  • 该列的首行是标题行,标题(字段名)必须是数据库中的字段名

  • 标题行下面至少有一行指定了条件

条件中可以使用各种比较表达式:=、>、<、<>、>=、<=

比如:>100,<>100、<>”苹果”、=100、=”苹果”

但是,如果你在一个单元格中写:=100,结果就是100,并不显示=。所以你可以写作:

=”=100″

=”=苹果”

当然,如果条件是等于的话,可以将=省掉,直接写作

100

苹果

注意:对于文本来说,如果写作:=”苹果”,则必须包含双引号;如果直接在条件单元格转入区域中输入,则一定不能包含双引号(只能输入为: 苹果)

另外,条件支持通配符,可以使用:红*

来表示所有的以“红”开始的颜色。

多个条件的关系

在条件区域中给定多个条件时,它们满足如下关系:

  • 对于条件区域的同一行上的多个条件,它们是必须同时成立的,类似于AND。

    DSUM,DCOUNT,DCOUNTA,DAVERAGE,DMAX和DMIN
  • 对于条件区域的同一列上的多个条件,它们成立一个即可,类似于OR。

如下图:

这个条件的准确含义是:

颜色是红色并且产地是北京,或者,颜色是黄色或者产地是山东。

数据库中的同一个字段可以使用多次,例如:

这里价格字段使用了两次,含义是:

价格大于等于8,并且<12

DCOUNT,DCOUNTA,DAVERAGE,DMAX,DMIN

这些函数的使用方法跟DSUM基本一样,就不多加赘述了。例如,下图就是DCOUNT,和DCOUNTA的用法:

前面介绍的使用方法中,条件中的字段都是数据库的原字段。但是,这种用法有局限,比如,如何筛选价格超过平均价格的那些记录对应的数量的合计?

计算超过平均价格的总数量

此时,我们可以使用一个不在数据库中的字段,

这里的“计算价格”就是一个数据库中没有的字段(这个名称可以是任意的,但是一定不能在数据库字段中出现过),这个字段中使用一个公式(类似设置条件格式时的公式):
=F5>AVERAGE($F$5:$F$11)
其中,
$F$5:$F$11是数据库中价格列区域(不含标题行),注意这个条件的区域范围务必时绝对引用。而F5是价格列中的第一个数据,我们使用它来代替对整个价格列的引用,务改是个相对引用。
这样,整个条件区域的含义就是:
颜色为红色,并且计算价格为TRUE的行。
而计算价格相当于从F5到F11循环,比较每个价格跟平均价格的大小。
DSUM将筛选所有为TRUE的值,然后求和:
=DSUM(B4:F11,"数量",H4:I5)
大小写敏感的条件

数据库函数中的条件都是大小写不敏感的,比如:

无论条件是Yellow,还是yellow,或者YELLOW,结果都是一样的。
如果希望大小写敏感,我们可以使用EXACT函数:
=EXACT(D5,"Yellow")
具体使用如下图:

这个函数的运行方式跟第一个例子一样,都是用D5来表示对颜色列D5:D11的引用。
其中,条件字段“确切颜色”可以是任意名称,同样不能在数据库字段中出现过。

总结


数据库函数使我们可以很容易的制作交互式的数据报告,只要将条件区域适当设置格式,用户就可以简单的通过调整条件区域的值来得到想看的结果了。