一组长期被忽视的函数-数据库函数
在Excel中有一类函数,长期被大多数人忽略,实际上在处理多条件查询,求和,计数等方面,它们非常有用。有时候,用其他函数处理不了的问题,用它们很容易解决。它们就是数据库函数。
数据库函数介绍
Excel中的数据库函数总共包括12个不同的函数:
大部分函数都是在Excel原有的函数名字前面加了个字母“D”,例如DSUM。其中DGET除外。
上图中我们也列出了这些函数的作用:基本上都与原型函数的作用相同。我们今天会分别介绍(除了最后的4个统计函数,一般人用不到这几个函数)。
这些函数的语法基本上都是一样的,类似于:
=FUNCTIONNAME(database,field,criteria)
其中FUNCTIONNAME可以替换成任意一个上图中的数据库函数。
使用数据库函数
database — 数据区域,左上角B2:D7
field — 要求和的列名,即D2单元格
criterria — 条件区域,B11:B13单元格
所以这个公式:
=DSUM(B2:D7,D2,B11:D13)
的意思就是对数据区域B2:D7的D列(列名为“金额”)求和,条件是B11:B13区域。
我们再来看这个条件区域:
首先我们看到,这个条件区域从列上来看跟数据区域是一样的。具体条件就是针对这些列设置的:
数据库函数条件规则1:处于同一行的条件必须同时成立。
数据库函数条件规则2:处于不同行的条件有一个成立即可。
负责人叫张三丰,并且金额大于1000的那些项目金额和负责人叫张无忌的那些项目的金额之和。
我们可以用SUMIFS函数来解决:
=SUMIFS(D3:D7,C3:C7,"张三丰",D3:D7,">1000")+SUMIFS(D3:D7,C3:C7,"张无忌")
比较麻烦,如果用数据库函数:
=DSUM(B2:D7,D2,B11:D13)
就很简单了。
其他函数的应用也大同小异,见下图:
通配符
使用"?"的效果类似,不再赘述。
需要注意的是,如果在某一行的某一字段使用了通配符,然后又有一个条件中用了这个字段,这个条件将被忽略。见下图:
DGET和DPRODUCT
在数据库函数中,DGET和DPRODUCT函数略有不同,所以单独介绍一下。
DGET
上图中,我们利用DGET返回了项目负责人的姓名,条件是金额>1800的项目。
要注意下面两点:
如果没有满足条件的记录,那么DGET会返回#VALUE!的错误值:
如果找到了多条满足条件的记录,那么将返回#NUM!的错误
DPRODUCT
上图中,记录了不同项目的公式和单价,如果想要计算某个项目的总金额,就可以使用DPRODUCT函数了
取得本文模板文件的方式: