Excel SUMPRODUCT函数用法(乘积求和,分组排序)
SUMPRODUCT函数是Excel中功能比较强大的一个函数,可以实现sum,count等函数的功能,也可以实现一些基础函数无法直接实现的功能,常用来进行分类汇总,分组排序等
SUMPRODUCT 函数基础
SUMPRODUCT函数先计算多个数组的元素之间的乘积再求和。SUMPRODUCT函数的语法为:
SUMPRODUCT(array1,array2,array3, …),其中Array为数组,用于指定包含构成计算对象的值的数组或单元格区域
SUMPRODUCT函数的使用注意事项:
(1).数组参数必须具有相同的维数,即行数相同,否则,函数SUMPRODUCT将返回错误值#VALUE!
(2).数据区域引用不能整列引用.如:A:A、B:B,必须是A2:A100这种
SUMPRODUCT 函数用法
用法1:乘积求和
如下数据需要统计公司整体的花费,需要将数量乘以单价并汇总

这里使用SUMPRODUCT函数可以直接得到结果。输入公式=SUMPRODUCT(C2:C8*D2:D8)或者=SUMPRODUCT(C2:C8,D2:D8)即可得到总计花费
这里用到了两写方法,第一个公式中用*(乘号)连接参数。第二个公式中用,(逗号)连接参数。本例中的数据源都是数值,所以两种方法返回的结果一致。如果当数据源中包含文本数据值,使用公式2仍然可以返回正确结果,SUMPRODUCT将非数值型的元素作为0处理。但如果用公式1则会导致数值和文本相乘,返回错误值:#VALUE!。
乘积求和是SUMPRODUCT 函数最基础的用法,也可以解释SUMPRODUCT 函数的原理:即将选取区域的数组相乘再相加
用法2:条件求和
SUMPRODUCT函数中加入逻辑判断即可以实现sumif、sumifs函数的功能:条件求和。例如想要求市场部的总花费,即单条件求和,公式如下:=SUMPRODUCT((A2:A8="市场部")*C2:C8*D2:D8)
其中A2:A8="市场部"即为对应的条件判断,如果为市场部,则返回结果为True,对应值为1,并与后续数组中的数量和单价相乘,如果不为市场部,则返回结果为False,对应值为0,与后续数组中的数量和单价相乘后返回的结果为0,从而实现了条件求和。
当有多个条件求和时也可以按照同样的原理增加逻辑判断。例如求市场部笔记本总花费,对应公式为:=SUMPRODUCT((A2:A8="市场部")*(B2:B8="笔记本")*C2:C8*D2:D8)
用法3:条件计数
条件计数的原理即为将SUMPRODUCT函数中的参数全部设为条件判断,判断结果为True的返回数值1,相加后即为满足条件的计数
例如求市场部对应的记录数量,公式为:=SUMPRODUCT(N(A2:A8="市场部"))其中部门列是文本形式,则需嵌套N函数,表示返回转化为数值后的值,从而统计对应的记录数。
如果需要对多条件进行计数,例如统计市场部单价大于5的记录数,则公式为:=SUMPRODUCT((A2:A8="市场部")*(D2:D8>5))
用法4:分组排序
SUMPRODUCT函数也常用于分组排序,例如需要将不同部门的商品单价排序,则对应公式为:=SUMPRODUCT(($A$2:$A$8=A2)*($D$2:$D$8>=D2))
其中$A$2:$A$8=A2表示条件区域列判断是否等于A2,返回对应的判断结果True和False。$D$2:$D$8>D2判断单价区域列是否大于等于D2,同样返回一组判断结果True和False,通过SUMPRODUCT函数将两组数组相乘,得到的就是部门列为市场部,且单价大于等于10的相乘结果为1,其他结果为0,再相加后即可得到整个分组中大于D2的记录数,从而得到对应的排名。
省流版公式套路:=SUMPRODUCT((条件区域1=条件1)*(要进行排名的区域>数值))+1
用法5:多权重计算
上述几种用法中SUMPRODUCT 函数中的数组区域都是一列的列数组,同样的一行的行数组也是可以的。例如下面需要根据笔试,面试和其他成绩及权重计算总成绩:

总成绩计算公式为:=SUMPRODUCT($B$17:$D$17,B18:D18),其中$B$17:$D$17为权重区域,```B18:D18``为成绩区域,注意两个区域的绝对引用和相对引用。SUMPRODUCT 函数对两个区域进行乘积求和。在权重项目比较多时使用SUMPRODUCT比一个一个乘要方便很多
用法6:隔列条件求和
如下例中需要计算每一种产品的计划采购数量和实际采购数量

汇总笔记本计划数量的公式为=SUMPRODUCT(($B$33:$I$33=J$33)*$B34:$I34),其中$B$33:$I$33=J$33为条件判断区域,找到对应为计划的列,$B34:$I34为值区域,符合条件的列条件判断区域返回1,然后与值区域相乘再相加。
对于所有产品的总计数量,对应公式为=SUMPRODUCT(($B$33:$I$33=J$33)*$B34:$I37) ,将值区域设为的产品区域,相乘相加后即得到所有产品所有季度的汇总、
从这个例子可以看得出来SUMPRODUCT函数的array数组使用很灵活,但原理是一致的,掌握原理才可以更好的使用SUMPRODUCT函数
示例文件下载:
https://download.csdn.net/download/qq_42692386/88855138

相关文章:
Excel SUMPRODUCT函数用法(乘积求和,分组排序)
SUMPRODUCT函数是Excel中功能比较强大的一个函数,可以实现sum,count等函数的功能,也可以实现一些基础函数无法直接实现的功能,常用来进行分类汇总,分组排序等 SUMPRODUCT 函数基础 SUMPRODUCT函数先计算多个数组的元素之间的乘积…...
C#上位机与三菱PLC的通信08---开发自己的通讯库(A-1E版)
1、A-1E报文回顾 具体细节请看: C#上位机与三菱PLC的通信03--MC协议之A-1E报文解析 C#上位机与三菱PLC的通信04--MC协议之A-1E报文测试 2、为何要开发自己的通讯库 前面使用了第3方的通讯库实现了与三菱PLC的通讯,实现了数据的读写,对于通…...
ABAQUS应用04——集中质量的添加方法
文章目录 0. 背景1. 集中质量的编辑2. 约束的设置3. 总结 0. 背景 混塔ABAQUS模型中,机头、法兰等集中质量的设置是模型建立过程中的一部分,需要研究集中质量的添加。 1. 集中质量的编辑 集中质量本身的编辑没什么难度,我已经用Python代码…...
[嵌入式系统-24]:RT-Thread -11- 内核组件编程接口 - 网络组件 - TCP/UDP Socket编程
目录 一、RT-Thread网络组件 1.1 概述 1.2 RT-Thread支持的网络协议栈 1.3 RT-Thread如何选择不同的网络协议栈 二、Socket编程 2.1 概述 2.2 UDP socket编程 2.3 TCP socket编程 2.4 TCP socket收发数据 一、RT-Thread网络组件 1.1 概述 RT-Thread 是一个开源的嵌入…...
【ansible】认识ansible,了解常用的模块
目录 一、ansible是什么? 二、ansible的特点? 三、ansible与其他运维工具的对比 四、ansible的环境部署 第一步:配置主机清单 第二步:完成密钥对免密登录 五、ansible基于命令行完成常用的模块学习 模块1:comma…...
【LeetCode】升级打怪之路 Day 01:二分法
今日题目: 704. 二分查找35. 搜索插入位置34. 在排序数组中查找元素的第一个和最后一个位置 目录 今日总结Problem 1: 二分法LeetCode 704. 二分查找 【easy】LeetCode 35. 搜索插入位置 ⭐⭐⭐⭐⭐LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置 【medi…...
单片机stm32智能鱼缸
随着我国经济的快速发展而给人们带来了富足的生活,也有越来越多的人们开始养鱼,通过养各种鱼类来美化居住环境和缓解压力。但是在鱼类饲养过程中,常常由于鱼类对水质、水位及光照强度有着很高的要求,而人们也由于工作的方面而无法…...
面试经典150题——生命游戏
"Push yourself, because no one else is going to do it for you." - Unknown 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力求解 之所以先暴力求解,是因为我开始也没什么更好的思路,所以就先写一种解决方案,没准写着写…...
【C++】C++11下线程库
C11下线程库 1. thread类的简单介绍2.线程函数参数3.原子性操作库(atomic)4.mutex的种类5. RAII风格加锁解锁5.1Lock_guard5.2unique_lock 6.condition_variable 1. thread类的简单介绍 在C11之前,涉及到多线程问题,都是和平台相关的,比如wi…...
面试经典150题——矩阵置零
"Dream it. Wish it. Do it." - Unknown 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力求解 思路一很简单,就是尝试遍历矩阵的所有元素,如果发现值等于0,就把当前行与当前列的值分别置为0。同时我们需要注意,…...
多端开发围炉夜话
文章目录 一、多端开发 一、多端开发 uni-app 官网 UNI-APP中的UI框架:介绍常用的UI框架及其特点 uView UIVant WeappColor UIMint UI uniapp嵌入android原生开发的功能 uniapp使用安卓原生sdk uni-app中的uni.requireNativePlugin...
分治算法总结(Java)
目录 分治算法概述 快速排序 练习1:排序数组 练习2:数组中的第K个最大元素 练习3:最小k个数 归并排序 练习4:排序数组 练习5:交易逆序对的总数 练习6:计算右侧小于当前元素的个数 练习7࿱…...
【云原生系列之kubernetes】--Ingress使用
service的缺点: 不支持基于URL等机制对HTTP/HTTPS协议进行高级路由、超时、重试、基于流量的灰度等高级流量治理机制难以将多个service流量统一管理 1.1ingress的概念 ingress是k8s中的一个对象,作用是如何将请求转发到service的规则ingress controlle…...
练习:鼠标类设计之2_类和接口
前言 续鼠标类设计之1,前面解决了鼠标信号问题,这里解决显示问题 引入 鼠标伴随操作系统而生,考虑在屏幕上怎样显示 思路 1>鼠标显示是一个动态效果,所以需要一个“动态效果类”对象,添加进鼠标类的属性里。 在面…...
【程序员英语】【美语从头学】初级篇(入门)(笔记)Lesson 15 At the Department Store 在百货商店
《美语从头学初级入门篇》 注意:被 删除线 划掉的不一定不正确,只是不是标准答案。 文章目录 Lesson 15 At the Department Store 在百货商店会话A会话B笔记 Lesson 15 At the Department Store 在百货商店 会话A A: Can you help me, please? B: Sur…...
linux 安装、删除 JTAG驱动
安装 安装驱动需要sudo访问权限,所以得手动安装。 在petalinux安装目录下: 文件的路径。 cd tools/xsct/data/xicom/cable_drivers/lin64/install_script/install_drivers 然后执行文件 install_drivers。 sudo ./install_drivers安装成功。 删除 …...
CSS的伪类选择器:nth-child()
CSS的伪类选择器:nth-child() CSS的伪类选择器 :nth-child() 是一个非常强大的工具,它允许你根据元素在其父元素中的位置(序数)来选择特定的子元素。这个选择器可以应用于任何元素,并且可以与类型选择器、类选择器或ID选择器结合…...
python celery使用队列
在celery的配置方法中有个参数叫task_routes,是用来设置不同的任务 消费不同的队列(也就是路由)。 格式如下: { ‘task name’: { ‘queue’: ‘queue name’ }}直接上代码,简单明了,目录格式如下&#x…...
四非保研之旅
大家好,我是工藤学编程,虽有万分感概,但是话不多说,先直接进入正题,抒情环节最后再说,哈哈哈 写在开头 我的分享是来给大家涨信心的,网上的大佬们都太强了,大家拿我涨涨信心&#…...
基于Java+SpringBoot的旅游路线规划系统(源码+论文)
文章目录 目录 文章目录 前言 一、功能设计 二、功能实现 1.1 前端首页模块的实现 1.2 景点新闻 1.3 景点在线预订 1.4 酒店在线预订 1.5 管理员景点管理 1.6 管理员旅游线路管理 1.7 酒店信息管理 三、库表设计 前言 随着我国的经济的不断发展,现在的一些热门的景…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
