按条件增加列_12个公式解决Excel按条件多列求和,掌握两、三个就够用了

【温馨提示】亲爱的朋友,阅读之前请您点击【关注】,您的支持将是我最大的动力!#职场众生相#

a127861e334edf85ba0526c0db66bcc2.png

日常工作中,在Excel表格中按条件求和也是经常用到的,一般根据条件求和的是一列数据,利用SUMIF函数即可解决,如果是多列数据按条件求和呢?今天小编分享几个公式解决这一问题,公式各有特色,其实能掌握其中的两、三个就够用了。

504be91f6179cb93bca319563ed55dba.png

上图表格中需要按名称计算一季度的销量,也就是1、2、3月的销量之和,根据H列的名称(条件),条件区域在B列,计算满足条件 的D、E、F列之和,就是多列按条件求和。

公式1:=SUMIF(B:B,H2,D:D)+SUMIF(B:B,H2,E:E)+SUMIF(B:B,H2,F:F)

这个公式就不用多解释了吧!,分别用SUMIF函数进行单列求和,然后再相加,虽然麻烦,但容易理解。

e98ff3ed75ee8e29390566acadaebfd0.png

公式2:=SUM(IF(B$2:B$16=H2,D$2:F$16))

注意这是一个数组公式,输入完公式后需要按Ctrl+Shift+回车键确认公式;

公式中利用数组扩展性,将三列数据与条件用IF函数判断,IF函数返回满足条件的数字,然后用SUM函数对满足条件的数字进行求和。

d0d2a78e879d460f123442ac385ed46c.png

公式3:=SUM((B$2:B$16=H2)*D$2:F$16)

这个公式和上一个公式相似,同样是数组公式,需要按Ctrl+Shift+回车键确认公式,不同之处在于少了IF函数,利用*号参与计算,这里的*代表逻辑值,类似IF函数。

3dd3bf33bc85c697ac31b7cf2f30e2f8.png

公式4:=SUMPRODUCT((B$2:B$16=H2)*D$2:F$16)

这个公式和上一个几乎一样,把SUM函数换成了SUMPRODUCT函数,换了一个函数,公式也变成了普通公式,而非数组公式。

da0552aeb499a06e3457e57a809f762a.png

公式5:=SUMPRODUCT((B$2:B$16=H2)*(D$2:D$16+E$2:E$16+F$2:F$16))

这个公式是公式4的另一种思路,把合在一起的求和区域分成了三列。

这里小伙伴们会有疑问:分在三列写公式不是更麻烦,还不如上一个公式简单。

小编的示例表格三个求和区域是连续的多列,这时使用公式4要简单些,如果求和的多列不连续呢?这个公式是不是很适用呢?

aa4cd3b9ab7360debb64235836207ef3.png

公式6:=SUMPRODUCT((B$2:B$16=H2)*MMULT(D$2:F$16,{1;1;1}))

公式有些难以理解,如果你只是为完成工作,掌握公式1-5即可,如果想深入研究Excel的强大公式,可以先收藏以下公式,直接套用几遍公式进行实际操作。小编的其他教程有关于这些函数的讲解,可以去我的主页查看教程。

a779473d4b89a7638e52174faf247910.png

公式7:=SUM(SUMIF(B:B,H2,OFFSET(B:B,,{2,3,4})))

公式中OFFSET函数第3个参数偏移的列数,此公式的优势在于当求和列增加或不连续时,只需修改OFFSET的第3个参数即可。

8178b9b3bfc0184d3a5c42baaa0a884a.png

公式8:=SUM(SUMIF(B:B,H2,INDIRECT("c"&{4,5,6},)))

公式优势类似于上一个公式,可以修改{4,5,6},改变求和区域。

96346c3531f93c9b81848a33d311efa5.png

公式9:=SUM(SUMIF(B:B,H2,INDIRECT({"d","e","f"}&1)))

这个更直观,求和区域在{"d","e","f"}这三列中,如果改变求和列,直接修改列标即可。

公式7-9的思路相似通过OFFSET和INDIRECT函数构造多个单列区域,用SUMIF函数计算每个单列之和,再用SUM函数汇总。优势在于增加或改变求和列时,只需要简单改动几个数字或字母即可。

56a87b5bfbdfb5196e8ec0a3d4f5e618.png

公式 10:=SUM(DSUM(A$1:F$16,{4,5,6},H$1:H2))-SUM(I$1:I1)

2cc33ef0d4c27339cd8fa3051d8600f7.png

公式11:=SUMPRODUCT(COUNTIF(H2,B$2:B$16)*D$2:F$16)

a7173e1c61956dfe87e38f82215b423d.png

公式12:=MMULT(MMULT(N(H2:H3=TRANSPOSE(B2:B16)),D2:F16),{1;1;1})

公式10-12比较难理解,有兴趣想要了解公式的小伙伴们可以私信小编

3888ded49fc388caeed08531d44e68e9.png

小伙伴们,在使用Excel中还碰到过哪些问题,评论区留言一起讨论学习,坚持原创不易,您的点赞转发就是对小编最大的支持,更多教程点击下方专栏学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序制作预算_小程序商城制作多少钱

现在有做微信小程序商城需求的企业越来越多,在选择小程序制作公司的时候,很多公司上来就报价几万,导致价格太贵让用户望而却步,其实微信小程序制作的价格是不同的,并且不同的制作公司报价也不一样,那么做一…

语言 ota_新增飞屏功能 ARCFOX αT首次OTA升级

[爱卡汽车 行业资讯原创]日前,爱卡汽车获悉,极狐 阿尔法T(ARCFOX αT)进行了首次OTA升级,车主将从12月20日起陆续收到OTA升级的推送消息,该车本次系统升级包大小约340M,升级时间约15分钟。据了解,极狐 阿尔…

uniapp里的mounted_uni-app框架下TypeScript语法中页面的onLoad事件为什么不会被触发?...

问题描述在Uni-app平台下进行开发,单文件组件 (SFC) 的Script标签中使用TypeScript语法,当使用vue-property-decorator库的方式书写TypeScirpt代码时,为什么uni-app的单页生命周期函数onLoad,onReady等函数都无法被触发?而vue的mo…

git merging 怎么处理_如何让 Git 的输出对代码更友好?

关注公众号 “OpenSourceDaily” ,每天推荐给你优秀开源项目大家好,我是欧盆索思(opensource),每天为你带来优秀的开源项目!如今 Git 是每个开发人员必须掌握的技能,几乎每天我们都需要使用 Git,很多人可能…

python创建文本、判断该文件共有多少行_python如何判断文件有多少行

如何统计读取的一个txt文本的行数呢?云海天教程网,大量的免费python教程,欢迎在线学习!最简单的办法是把文件读入一个大的列表中,然后统计列表的长度。如果文件的路径是以参数的形式filepath传递的,那么只用…

房价预测python_详解 Kaggle 房价预测竞赛优胜方案:用 Python 进行全面数据探索...

[导读]Kaggle 的房价预测竞赛从 2016 年 8 月开始,到 2017 年 2 月结束。这段时间内,超过 2000 多人参与比赛,选手采用高级回归技术,基于我们给出的 79 个特征,对房屋的售价进行了准确的预测。今…

python xycoords_python可视化节点关系(三):matplotlib(2)鼠标交互

实现鼠标交互1. 实现鼠标点击节点高亮直接上代码:# -*- coding: utf-8 -*-# -*- coding: utf-8 -*-import matplotlib.pyplot as pltfrom matplotlib.patches import Rectangleimport numpy as npfig, ax plt.subplots(figsize(10,10))node_pos [(1, 0), (0, 1), …

java.util.zip.zipexception_android-如何解决java.util.zip.ZipException?

每当我尝试调试和部署我的android应用程序(在Android Studio 0.9中)时,都会出现以下错误:Execution failed for task :app:packageAllDebugClassesForMultiDex.java.util.zip.ZipException: duplicate entry: android/support/multidex/BuildConfig.clas…

处理入参_看看优秀的程序员是如何处理NPE的

点击上方 果汁简历 ,选择“置顶公众号”优质文章,第一时间送达西格玛的博客https://urlify.cn/7j2uMz在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不这头绪,它的出…

udl 连mysql_自己如何正确获取MYSQL的ADO连接字符串

1.在桌面上新建一个空的文本文件mysql.txt,重命名为mysql.udl;2.双击这个mysql.udl文件,打开“数据库连接属性”对话框,在“提供程序”页选择”Micrsoft Ole DB Provider for ODBC Drivers“, 点击下一步;3.在“连接”…

id 怎么获取jira 评论_一篇文章教会你使用Python定时抓取微博评论

【Part1——理论篇】试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存。首先从微博api寻找 抓取评论的接口,如下图…

单片机中存储器扩展位地址线怎么算_51单片机CPU结构各部件的原理详细分析

一、 51单片机串行口工作原理MCS-51系列单片机片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信。1.串行端口的基本特点8031单片机的串行端口有4种基本工作方式,通…

python format格式化输出填充符号不起作用_Python格式化输出——format用法示例

format OR %提到Python中的格式化输出方法,一般来说有以下两种方式:print(hello %s % world)# hello worldprint(hello {}.format(world))# hello world到底哪种好呢,反正对我来说,用了.format()之后就再也不想用%了。format()不用…

h5弹框滑动 ios_微信 iOS 版更新:细节大更新,你值得拥有

在9月17日,IOS 微信 7.0.7 正式上线了,和一周前安卓 微信 7.0.7 内测版相似,本次的微信更新并没有新功能的上线,更多的是细节上的改变优化。不知道大家有没有发现,iOS版微信从 7.0.5直接跳过7.0.6,直接更新…

jpa onetoone_拥抱开源从表设计到 JPA 实现

long may the sunshine.今天的我拿起键盘就是猛敲代码。果然,十分钟后各种 JPA 报错开始了。跟新手党一样,看到一个错误就解决一个,没有好好思考为什么会出现这样的错误。于是乎,遇到一个解决一个,解决一个又遇到一个&…

python 数据流中的移动平均值_剑指Offer-41-数据流中的中位数

题目题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 例如,[2,3,4] 的中…

vue 全局键盘_如何解决ios input框唤起软键盘不灵敏问题?

为什么移动端点击事件要加300ms延迟呢?早在 2007 年初,苹果公司在发布首款 iPhone 前夕,遇到一个问题:当时的网站都是为大屏幕设备所设计的。于是苹果的工程师们做了一些约定,应对 iPhone 这种小屏幕浏览桌面端站点的问…

css一个盒子里可以装3个图片并排吗_John: CSS浮动与清除浮动属性详解(CSS float clear)...

CSS里的浮动,可以让元素脱离标准流,从左上角或右上角依次贴边排列。下面这个案例将会帮我们了解浮动的基本情况。下面这段代码块,外面是一个大div,里面包含着3个div,第一个左浮动,后两个无浮动。//style样式…

连接驱动_在jdbc中完成对于jdbc参数、jdbc变量,加载驱动,创建连接的封装

JDBC简介JDBC中文含义:Java数据库连接,英文全称:Java Database Connectivity。它是Java语言中用来规范访问数据库的接口,提供了放多接口方法,例如查询 、更新、插入、删除等方法。另外一点要注意的是:JDBC是…

tensorflow 保存训练loss_tensorflow2.0保存和加载模型 (tensorflow2.0官方教程翻译)

最新版本:https://www.mashangxue123.com/tensorflow/tf2-tutorials-keras-save_and_restore_models.html英文版本:https://tensorflow.google.cn/alpha/tutorials/keras/save_and_restore_models翻译建议PR:https://github.com/mashangxue/t…