一组长期被忽视的函数-数据库函数

在Excel中有一类函数,长期被大多数人忽略,实际上在处理多条件查询,求和,计数等方面,它们非常有用。有时候,用其他函数处理不了的问题,用它们很容易解决。它们就是数据库函数。

数据库函数介绍

首先要强调,大家不要被“数据库”三个字迷惑了。这类函数并不是用于主页数据库操作的,它们操作的对象仍然是单元格区域,只不过操作方式是把这个区域当作“数据库”看待。

Excel中的数据库函数总共包括12个不同的函数:

大部分函数都是在Excel原有的函数名字前面加了个字母“D”,例如DSUM。其中DGET除外。

上图中我们也列出了这些函数的作用:基本上都与原型函数的作用相同。我们今天会分别介绍(除了最后的4个统计函数,一般人用不到这几个函数)。

这些函数的语法基本上都是一样的,类似于:

=FUNCTIONNAME(database,field,criteria)

其中FUNCTIONNAME可以替换成任意一个上图中的数据库函数。

所以,我们基本上会将这些函数一起介绍。

使用数据库函数

我们先以DSUM为例,看一下数据库函数的使用:
  • database — 数据区域,左上角B2:D7

  • field — 要求和的列名,即D2单元格

  • criterria — 条件区域,B11:B13单元格

所以这个公式:

=DSUM(B2:D7,D2,B11:D13)

的意思就是对数据区域B2:D7的D列(列名为“金额”)求和,条件是B11:B13区域。

我们再来看这个条件区域:

首先我们看到,这个条件区域从列上来看跟数据区域是一样的。具体条件就是针对这些列设置的:

先看第一个条件(即第一行),项目名称不管,负责人叫“张三丰”,金额大于1000。很显然,这两个条件是必须同时成立的。

数据库函数条件规则1:处于同一行的条件必须同时成立。

再来看第二个条件(即第二行),项目名称不管,负责人叫“张无忌”,金额不管。
那么这个条件跟第一个条件什么关系?同时成立,显然不行。因为没有一个同时叫两个不同名字的人。所以,这两个条件是有一个成立即可。

数据库函数条件规则2:处于不同行的条件有一个成立即可。

综上所述,实际上,我们需要的是:

负责人叫张三丰,并且金额大于1000的那些项目金额和负责人叫张无忌的那些项目的金额之和。

我们可以用SUMIFS函数来解决:

=SUMIFS(D3:D7,C3:C7,"张三丰",D3:D7,">1000")+SUMIFS(D3:D7,C3:C7,"张无忌")

比较麻烦,如果用数据库函数:

=DSUM(B2:D7,D2,B11:D13)

就很简单了。

其他函数的应用也大同小异,见下图:

通配符

在数据库公式中可以使用通配符,跟Excel其他地方的用法一样,下图是使用“*”的公式效果:

使用"?"的效果类似,不再赘述。

需要注意的是,如果在某一行的某一字段使用了通配符,然后又有一个条件中用了这个字段,这个条件将被忽略。见下图:

DGET和DPRODUCT

在数据库函数中,DGET和DPRODUCT函数略有不同,所以单独介绍一下。

DGET

DGET函数实际上是个查询函数,作用跟VLOOKUP一样。都是根据条件取出满足条件的记录。

上图中,我们利用DGET返回了项目负责人的姓名,条件是金额>1800的项目。

要注意下面两点:

如果没有满足条件的记录,那么DGET会返回#VALUE!的错误值:

如果找到了多条满足条件的记录,那么将返回#NUM!的错误

DPRODUCT

实际上DPRODUCT也可以看作是D+PRODUCT。在Excel中,PRODUCT的作用是把所有的参数相乘。那么DPRODUCT的作用就是把所有满足条件的结果相乘。

上图中,记录了不同项目的公式和单价,如果想要计算某个项目的总金额,就可以使用DPRODUCT函数了


好了,今天就介绍到这里了。如果你希望尽快了解哪个函数,欢迎在下面留言。

取得本文模板文件的方式:

本文没有模板文件
(0)

相关推荐