当前位置:首页 > 技术文章 > 正文内容

条件求和还在用Sumif、Sumifs以及Sumproduct函数?那就真的Out了

arlanguage4周前 (04-07)技术文章9

条件求和,应该是Sumif、Sumifs以及Sumproduct的拿手好戏,专利,但在实际的办公和数据处理中,应用的人越来越少,那是因为他们掌握了更为好用的数据库函数Dsum。


一、功能及语法结构。

功能:计算满足条件的数据库中记录的字段(列)数据的和。

语法结构:=Dsum(数据区域,返回值的相对列,条件区域)。

解读:

1、用Dsum函数求和时,需要注意的是第1个参数“数据区域”和第3个参数“条件区域”必须包含有效的列标题,否则无法正常计算;也就是说:“数据区域”和“条件区域”是由列标题和数据或条件构成的多行区域。

2、第2个参数“返回值的相对列”有3种引用方式:

(1)可以直接是数字:如要计算相对范围中第5列的和值,此参数直接写成数字5即可;

(2)列标题单元格地址:如要计算相对范围中第5列的和值,第5列列标题的单元格地址为E3,此参数直接写成E3即可。

(3)列标题:如要计算相对范围中第5列的和值,第5列的列标题为“月薪”,此参数直接写成“月薪”即可。需要注意的时列标题必须用""(双引号)括起来,否则无法正确执行。


二、应用案例

1、单字段单条件求和。

目的:根据“学历”计算相应的“月薪”。

方法:

在目标单元格中输入公式:=DSUM(F2:G12,2,J2:J3)、=DSUM(F2:G12,"月薪",J2:J3)、=DSUM(F2:G12,G2,J2:J3)。

解读:

1、“数据区域”和“条件区域”中包含了列标题,数据范围是F2:G12、J2:J3,并不是F3:G12、J3,和平时使用的公式还是不同的,这个需要特别的注意。

2、对3个公式进行比较,唯一不同的就是第2个参数,可以是相对列数、列标题或者列标题的单元格地址,完全可以根据自己喜好进行选择使用!


2、单字段多条件求和。

目的:计算“学历”为“大本”和“大专”的总“月薪”。

方法:

在目标单元格中输入公式:=DSUM(B2:G12,6,J2:J4)。

解读:

1、首先提个问题,同样是计算“月薪”,为什么此公式中的第2个参数为6,而不是2?此参数除了6之外,还可以是什么?留言区告诉小编哦!

2、条件区域J2:J4中的字段包括“大本”和“大专”,这两者之间的关系为“和”、“或”的关系,可以理解为统计的时“大本”和“大专”的总“月薪”。

3、单字段是指只有一个条件,就是“学历”;多条件是指此字段下有“大本”、“大专”两个条件。当然还可以有更多的条件。

4、如果用Sumif或Sumifs函数去实现此功能,又改如何编写公式呢?


3、多字段单条件求和。

目的:计算相应“学历”下“已婚”或“未婚”人员的总“月薪”。

方法:

在目标单元格中输入公式:=DSUM(B2:G12,G2,J2:K3)。

解读:

1、问题:第2个参数除了是G2外,还可以怎么写?

2、多字段指有多个条件,例如此示例中的“学历”和“婚姻”,当然还可以增加其它条件,根据实际情况设置即可;单条件是指每个字段下面只能有一个条件,这两个条件之间是“并且”的关系,例如:计算“学历”为“大本”,并且“已婚”的人员“月薪”总和。


4、多字段多条件求和。

目的:计算相应“学历”下“已婚”或“未婚”的人员总“月薪”。

方法:

在目标单元格中输入公式:=DSUM(B2:G12,6,J2:K4)。

解读:

1、根据前面的示例,“多字段多条件”应该很好理解了,“多字段”就是有多个条件;“多条件”就是每个字段下面有多个值。

2、“字段”和“条件”之间的关系:同一行中的2个或多个值是“并且”的关系,例如“大本”和“已婚”,就是计算学历必须为“大本”,而且婚姻必须为“已婚”的,这2个条件必须成立的总“月薪”;但行与行之间的关系为“或”,这个是要特别注意的。


5、时间范围求和。

目的:计算9月份的销量。

方法:

在目标单元格中输入公式:=DSUM(B2:F12,"销量",I2:J3)。

解读:

第3个参数为I2:J3,但仔细观察标题均为“销售日期”,只是具体的值不同而已,也就是说:同一个列标题,可以多次作为“字段”出现


6、数值区间求和。

目的:计算销量≥200,且<600的总销量。

方法:

在目标单元格中输入公式:=DSUM(B2:F12,D2,I2:J3)。

解读:

同一个列标题,可以多次作为“字段”出现。


7、用逻辑值作为条件字段。

目的1:计算9月份的总销量。

方法:

在目标单元格中输入:=DSUM(B2:F12,3,I2:I3)。

解读:

1、当逻辑值参与计算时,列标题为空,如本示例中的I2。

2、在条件区域编辑公式,如本示例中的:=MONTH(E3)=9。


目的2:计算高于平均销量的销量之和。

方法:

在目标单元格中输入公式:=DSUM(B2:F12,3,I2:I3)。


8、精准求和。

目的:计算“鼠标”的总销量。

方法:

在目标单元格中输入公式:=DSUM(B2:F12,3,I2:I3)。

解读:

条件区域中的条件为“=鼠标”,Why?不应该是“鼠标”么?此问题就涉及到精准匹配的问题,如果为“鼠标”,就是包含“鼠标”的所有字段都在计算范围内,而“=鼠标”就为精准匹配。所以字段有包含关系,而需要精准查询时,需要在字段的前面加上“=”(等号)。


最美尾巴:

本文从实际的案例中详细介绍了Dsum函数的应用技巧,相对于Sumif、Sumif等常规求和函数来说,还是有很多优势,尤其是区间计算时,显得尤为方便。


扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/3853.html

标签: sumif求和
分享给朋友:

“条件求和还在用Sumif、Sumifs以及Sumproduct函数?那就真的Out了” 的相关文章

tomcat配置域名的几种方式

我们自己在开发项目时一般使用的是ip访问,如果要对外发布是需要申请域名的,毕竟一个域名就相当于网站的代称。每个公司新上线的项目一般都会申请域名的,如果项目是部署在tomcat中的,那么如何进行配置呢?下边说一下其中的几种情况。同端口1一个域名对应一个项目注意:host节点中的appBase和Cont...

面试常问知识点:Nginx设置代理的一个注意点

前几天,重启了下Nginx代理服务,发现报错了,以下是本次的思考。1:先解决问题查看Nginx错误日志:40 SSL_do_handshake() failed (SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handsha...

基于 consul + nginx 的Spring boot微服务集群部署

consul + nginx 负载均衡最近做的基于consul的微服务项目,仅仅在单机上部署了一套,压测的时候扛不住(并发太高的时候linux文件连接数超过上限),于是想办法搞个集群部署。最终在我们的服务器的三台机器(mirage05-mirage07)上完成部署。一. 背景介绍以及项目现状1. c...

容器中Nginx高并发参数调优实战 nginx并发量过高怎么处理

在容器化的微服务架构中,Nginx作为反向代理和负载均衡器,常常需要承担高并发访问的压力。当并发连接数超过Nginx可处理的上限时,就会出现新连接被丢弃的情况。本文将详细介绍如何发现和定位这个问题,并通过调整内核参数和Nginx配置来解决。一、问题现象某Web服务在高并发场景下,偶尔会出现部分请求无...

Nginx从安装到高可用,一篇搞定 nginx安装方式

一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yum install gcc-c++ (2)安装PCRE库,用于解析正则表达式yum install -y pcre pcre...

不想被恶意访问?SpringBoot 的 IP 白名单限制了解一下!

前言在项目开发中,我们多少都会遇到要对请求访问IP做限制,允许哪些IP是可以访问系统。对于前后分离项目有两种方案,第一种是在Nginx服务中进行配置IP白名单,第二种是项目接口中进行白名单控制,例如在spring boot接口中进行白名单限制。方案一:Nginx服务器中配置IP白名单限制如果想在ng...