http://ranran3299.blog.163.com/blog/static/38322561201191651023682/

日常工作中,我们经常要用到多条件求和,方法有多种,第一类:使用基本功能来实现。主要有:筛选、分类汇总、数据透视表、多条件求和向导;第二类:使用公式来实现方法。主要有:使用SUM函数编写的数组公式、联用SUMIF和辅助列(将多条件变为单条件)、使用SUMPRODUCT函数、使用SUMIFS函数(限于Excel2007及以上的版本),方法千差万别、效果各有千秋。本人更喜欢用SUMPRODUCT函数。由于Excel帮助对SUMPRODUCT函数的解释太简短了,与SUMPRODUCT函数的作用相比实在不匹配,为了更好地把握该函数,特将其整理如下。
  一、 基本用法
  在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。
  语法:
  SUMPRODUCT(array1,array2,array3, ...)
  Array1, array2, array3, ... 为 2 到 30 个数组,其相应元素需要进行相乘并求和。
  公式:=SUMPRODUCT(A2:B4, C2:D4) 公式解释:两个数组的所有元素对应相乘,然后把乘积相加,即 3*2 + 4*7 + 8*6 + 6*7 + 1*5 + 9*3。计算结果为156
  二、 扩展用法
  1、 使用SUMPRODUCT进行多条件计数
  语法:
  =SUMPRODUCT((条件1)*(条件2)*(条件3)* …(条件n))
  作用:
  统计同时满足条件1、条件2到条件n的记录的个数。
  实例:
  =SUMPRODUCT((A2:A10="男")*(B2:B10="中级职称"))
  公式解释:
  统计性别为男性且职称为中级职称的职工的人数
  2、 使用SUMPRODUCT进行多条件求和
  语法:
  =SUMPRODUCT((条件1)*(条件2)* (条件3) *…(条件n)*某区域)
  作用:
  汇总同时满足条件1、条件2到条件n的记录指定区域的汇总金额。
  实例:
  =SUMPRODUCT((A2:A10="男")*(B2:B10="中级职称")*C2:C10)
  公式解释:
  统计性别为男性且职称为中级职称的职工的工资总和(假设C列为工资)
  三、 留意事项
  1、数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。
  2、SUMPRODUCT函数将非数值型的数组元素作为 0 处理。
  3、在SUMPRODUCT中,2003及以下版本不支持整列(行)引用,必须指明范围,不可在SUMPRODUCT函数使用A:A、B:B,Excel2007及以上版本可以整列(列)引用,但并不建议如此使用,公式计算速度慢。
  4、SUMPRODUCT函数不支持“*”和“?”通配符
  SUMPRODUCT函数不能象SUMIF、COUNTIF等函数一样使用“*”和“?”等通配符,要实现此功能可以用变通的方法,如使用LEFT、RIGHT、ISNUMBER(FIND())或ISNUMBER(SEARCH())等函数来实现通配符的功能。如:
  =SUMPRODUCT((A2:A10="男")*(B2:B10="中级职称")*(LEFT(D2:D10,1)="龙")*C2:C10)
  =SUMPRODUCT((A2:A10="男")*(B2:B10="中级职称")*((ISNUMBER(FIND("龙逸凡",D2:D10)))*C2:C10))
  注:以上公式假设D列为职工姓名。ISNUMBER(FIND())、ISNUMBER(SEARCH())作用是实现“*”的通配功能,只是前者区分大小写,后者不区分大小写。
  5、SUMPRODUCT函数多条件求和时使用“,”和“*”的区别:当拟求和的区域中无文本时两者无区别,当有文本时,使用“*”时会出错,返回错误值 #VALUE!,而使用“,”时SUMPRODUCT函数会将非数值型的数组元素作为 0 处理,故不会报错。 也就是说:
  公式1:=SUMPRODUCT((A2:A10="男")*(B2:B10="中级职称")*C2:C10)
  公式2:=SUMPRODUCT((A2:A10="男")*(B2:B10="中级职称"),C2:C10)
  当C2:C10中全为数值时,两者计算结果一样,当C2:C10中有文本时公式1会返回错误值 #VALUE!,而公式2会返回忽略文本以后的结果。
  四、 网友们的出色实例
  1、求指定区域的奇数列的数值之和
  =SUMPRODUCT(MOD(COLUMN(A1:F1),2)*A1:F1)
  2、求指定区域的偶数行的数值之和
  =SUMPRODUCT(((MOD(ROW(A1:A22),2))-1)*A1:A22)*(-1)
  3、求指定行中列号能被4整除的列的数值之和
  =SUMPRODUCT((MOD(COLUMN(A1:P1),4)=0)*A1:P1)
  4、.求某数值列前三名分数之和
  =SUMPRODUCT(LARGE(B1:B16,ROW(1:3)))
  5、统计指定区域不重复记录的个数
  =SUMPRODUCT(1/COUNTIF(V11:V15,V11:V15))

详情查看:excel表格的基本操作
       http://hi.baidu.com/xueexcel

用Excel制造人为表

Excel基础.doc

EXCEL使用技巧大全3

Excel数组公式从入门到精通之入门篇

Excel办公应用常见技巧方法(集合一)

EXCEL使用技巧大全

Excel 2007轻松进行多条件求和

Excel技能

Excel2007快捷键大全(参考)

Excel中取得合并单元格相关信息

Excel多条件求和 SUMPRODUCT函数用法详解相关推荐

  1. Excel多条件求和 SUMPRODUCT函数用法详解

    日常工作中,我们经常要用到多条件求和,方法有多种,第一类:使用基本功能来实现.主要有:筛选.分类汇总.数据透视表.多条件求和向导:第二类:使用公式来实现方法.主要有:使用SUM函数编写的数组公式.联用 ...

  2. EXCEL公式VLOOKUP函数用法详解

    EXCEL公式VLOOKUP函数用法详解 示例下载 VLOOKUP函数 在表格或数值数组的首列查找指定的数值,并由此返回表格或数组中该数值所在行中指定列处的数值. 这里所说的"数组" ...

  3. c语言fputc输入字符串,C语言fgetc和fputc函数用法详解(以字符形式读写文件)

    C语言fgetc和fputc函数用法详解(以字符形式读写文件),文件,字符,指针,函数,字节 C语言fgetc和fputc函数用法详解(以字符形式读写文件) 易采站长站,站长之家为您整理了C语言fge ...

  4. 计算机科学类专升本复习之“C语言fgetc和fputc函数用法”详解(初稿)

    C语言fgetc和fputc函数用法详解(以字符形式读写文件) 在C语言中,"读写"文件比较灵活,既可以每次"读写一个字符",也可以"读写一个字符串& ...

  5. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  6. C++中substr()函数用法详解

    C++中substr()函数用法详解 原型: string substr (size_t pos = 0, size_t len = npos) const; 返回一个新构造的string对象,其值初 ...

  7. LayoutInflater的inflate函数用法详解

    LayoutInflater的inflate函数用法详解 LayoutInflater作用是将layout的xml布局文件实例化为View类对象. 获取LayoutInflater的方法有如下三种: ...

  8. c++ memset 语言_C++中memset函数用法详解

    本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常 ...

  9. mysql: union / union all / 自定义函数用法详解

    mysql: union / union all http://www.cnblogs.com/wangyayun/p/6133540.html mysql:自定义函数用法详解 http://www. ...

最新文章

  1. Google Guava 概要
  2. X86/ARM 模拟器
  3. Spring MVC控制器用@ResponseBody声明返回json数据报406的问题
  4. 实战—用户价值模型搭建
  5. MKNetwork网络请求过程中onCompletion调用两次的问题
  6. 美食合成海报,脑洞开得有点Hold不住!!
  7. python3网络编程传输图片_python实现同一局域网下传输图片
  8. MySQL管理之 MyISAM和InnoDB存储引擎简单对比
  9. 如何批量修改AD用户的Email属性
  10. Arduino 用Proteus仿真基础知识和实例
  11. word导出手机端乱码或者打不开解决办法
  12. Redundant declaration: @SpringBootApplication already applies given @ComponentScan
  13. eclipse中项目运行时报错之 Compilation error解决方法
  14. IAM之Tivoli Identity Manager(二)
  15. Dijkstra算法和Floyd算法超详解以及区别
  16. 芯片行业常用的英文术语及其含义
  17. Auto.js 简单悬浮开关
  18. 【论文分享】BERTifying the Hidden Markov Model for Multi-Source Weakly Supervised Named Entity Recognition
  19. GPA学分绩点计算---Java实现版本
  20. python合并pdf_实用 | 手把手教你用Python分割与合并PDF

热门文章

  1. 【数据结构与算法】之深入解析“相交链表”的求解思路与算法示例
  2. OpenGL之矩阵变换的原理分析与数学推导
  3. Python 程序员经常犯的 10 个错误
  4. BASIC-1 闰年判断
  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1105:数组逆序重存放
  6. 【STM32】窗口看门狗
  7. 【Linux网络编程】端口绑定问题
  8. 【Linux】一步一步学Linux——lastb命令(99)
  9. mysql safe无法启动_(转)mysqld_safe无法启动的解决办法
  10. linux 下升级apache,CentOS6.5在已有低版本环境下安装升级Apache+MySQL+PHP,centos6.5apache...