这个需求是一位在当前抗疫一线的朋友提出的,和各位分享一下。

需求情况

因为众所周知的原因,他每天都需要为照顾的小区居民购买、运送生活物资。小区居民通过表单的形式提交自己每日的需求,最终汇总到一张excel表里,如下图:

每一行就是一户居民当日需要采购的物资

物资的价格在另外一张名叫“价格”的表当中如下:

这位朋友需要做的就是把每一户要采购的物资总金额计算出来,然后再进行后面的工作。

解决思路

大致思索一番,其实这个问题可以有多个办法来解决。

方法一:excel函数

这个办法有点繁琐,但是简单有效。

以第一户为例,把总金额计算在I2单元格,公式为:

=IF(E2="/",0,1)*价格!$A$3+IF(F2="/",0,1)*价格!$B$3+IF(G2="/",0,1)*价格!$C$3+IF(H2="/",0,1)*价格!$D$3

公式里的IF函数的作用是,对每项物资进行判断,等于“/”的就为0,不等的就为1,然后再和价格相乘,最后加总求和。

然后再向下拖即可。

方法二:sumproduct函数

这个方法和上面的思路一样,但是公式更简化。

还是以第一户为例,把总金额计算在K2单元格,公式为

=SUMPRODUCT(--(E2:H2<>"/"),价格!$A$3:价格!$D$3)

SUMPRODUCT()函数的作用就是乘积汇总,–(E2:H2<>”/”)表示筛选不等于“/”的项目,标记为1;等于“/”的项目,标记为0;然后再和对应的价格相乘,最后汇总。

然后再向下拖即可。

方法三:VBA

思路基本一致,使用更加灵活,一键完成到位。

为了方便,就直接调用方法二中的SUMPRODUCT()函数。

Sub caijia1()
Range("Q2", "Q10").ClearContents
j = [a2].End(xlDown).Row
For i = 2 To j
    Range("M" & i).Value = Evaluate("SUMPRODUCT(--(E" & i & ":H" & i & "<>""/""),价格!$A$3:价格!$D$3)")    
Next
End Sub

这样的好处是不用再手动的输入函数,然后再往下拖。只需要一键即可完成计算,即使是数据有增加、或者减少,VBA都可以自动识别,省心省力。

暂时就想到这么多。如果你也有好的办法,欢迎告诉我!

相关阅读:Excel VBA 实例(25) – 班级随机点名并播放
Excel VBA 实例(24) – 新股(债)中签一键批量查询
Excel VBA 实例(23) – 一键批量提取word表格内容
Excel VBA 实例(22) – 一键筛选其他工作表或工作簿的数据

欢迎交流!

excel如何快速汇总多个类别的总和?的更多相关文章

  1. Excel 批量快速合并相同的单元格:数据透视表、宏代码、分类汇总

    Excel 批量快速合并相同的单元格   在制作Excel表格的时候,为了使得自己制作的报表更加简洁明了,方便查阅,经常需要合并很多相同的单元格,如果有几千几万条记录需要合并的话,真的会让人发疯.怎样 ...

  2. ASP.NET导出excel表方法汇总

    asp.net里导出excel表方法汇总  1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) ...

  3. Excel如何快速统计一列中相同数值出现的个数--数据透视表

    excel如何快速统计一列中相同数值出现的个数_百度经验 --这里介绍了两种解决方式,用第一种https://jingyan.baidu.com/article/9113f81b2c16822b321 ...

  4. 可视化设计,类Excel的快速开发平台

    活字格Web应用生成器,是可视化设计,类Excel的快速开发平台,接下来给大家介绍如何体现这些特点. 一.可视化设计 网页系统的开发,包含UI设计+代码编写的工作,最终形成网页系统.这要求系统开发人员 ...

  5. 用EXCEL做快速傅立葉轉換_FFT in Excel

    转载来自:http://yufan-fansbook.blogspot.tw/2013/09/excel-fft-fast-fourier-transform02.html [Excel]-用EXCE ...

  6. Oracle导入excel数据快速方法

    Oracle导入excel数据快速方法 使用PLSQL  Developer工具,这个可是大名鼎鼎的Oracle  DBA最常使用的工具.    在单个文件不大的情况下(少于100000行),并且目的 ...

  7. 使用excel进行数据挖掘(3)----类别检測

    使用excel进行数据挖掘(3)----类别检測 在配置环境后,能够使用excel进行数据挖掘. 环境配置问题可參阅: http://blog.csdn.net/xinxing__8185/artic ...

  8. excel如何快速选中某个区域

    一.问题 excel如何快速选中某个区域 二.解决 如图:要选中A1-D12的区域,可以选择用鼠标,单数数据量多的时候就比较麻烦,可以用下面这种方式.

  9. Oracle导入excel数据方法汇总[转]

    摘要:在程序编制过程和数据汇总交换过程中,经常会碰到需要将其他人员在office办公环境下编制的文件数据内容导入oracle中的情况.目前程序开发者经常使用的方法有如下几种:1,使用oracle提供的 ...

随机推荐

  1. PIC单片机的XC8

    用MPLAB IDE 对pic16f887进行编程的时候需要配置字 用__CONFIG(0xc3e4);__CONFIG(0xffff); 就可以 但是用MPLAB X IDE 对pic16f887编 ...

  2. Python编程基本规范

    1.命名规范 类:类的名称一般为名词,且以驼峰形式(即每个单词首字母要大写,其余字母小写,单词之间无间隔符号)给出. 函数:一般以动词开头,函数名称要准确.简要地概括本函数的作用.函数名一律小写,如有 ...

  3. DQN(Deep Q-learning)入门教程(六)之DQN Play Flappy-bird ,MountainCar

    在DQN(Deep Q-learning)入门教程(四)之Q-learning Play Flappy Bird中,我们使用q-learning算法去对Flappy Bird进行强化学习,而在这篇博客 ...

  4. 公司如何通过电脑监控来规范员工行为-iis7服务器管理功能教程

    现在员工办公基本都用电脑,而电脑不仅仅可以用来处理工作,还可以上网.娱乐等.往往很多员工的自制能力比较差,在工作时间和人聊天,浏览购物网站,看新闻,炒股等休闲娱乐上花费大量的时间,导致工作效率降低,影 ...

  5. [Pyspark]RDD常用方法总结

    aggregate(zeroValue, seqOp, combOp) 入参: zeroValue表示一组初值 Tuple seqOp表示在各个分区partition中进行 什么样的聚合操作,支持不同 ...

  6. 【算法】单元最短路径之Bellman-Ford算法和SPFA算法

    SPFA是经过对列优化的bellman-Ford算法,因此,在学习SPFA算法之前,先学习下bellman-Ford算法. bellman-Ford算法是一种通过松弛操作计算最短路的算法. 适用条件 ...

  7. 磨刀-CodeWarrior11生成的Makefile解析

    https://mp.weixin.qq.com/s/plvviDFLsLQeg9ZeP_3WMA   一. 简介 Code Warrior 11是基于Eclipse CDT开发的集成开发环境(IDE ...

  8. Chisel3 - util - RRArbiter

    https://mp.weixin.qq.com/s/GcNIFkHfa0gW0HKkKvHZEQ     循环优先级(Round Robin)仲裁器.   参考链接: https://github. ...

  9. JVM虚拟机 与 GC 垃圾回收

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.JVM体系结构概述 1.JVM 与系统.硬件 ​ JVM是运行在操作系统之上的,它与硬件没有直接的交 ...

  10. ActiveMQ 笔记(八)高级特性和大厂常考重点

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.可用性保证 引入消息队列之后该如何保证其高可用性? 持久化.事务.签收. 以及带复制的 Leavel ...