Question to say "I can!"

吉林快三技巧:用EXCEL的sumproduct函数做条件统计

2012-08-08

sumproduct函数在多条件统计中具有王者之风,是一个Excel高手必备的技能之一。

前面已经写过一篇,这里再学习一下。

以下参考于:张志强——用EXCEL的sumproduct函数做条件统计

 

基本用法

sumproduct的正常用法是

= sumproduct(array1, array2, array3, ...)

它可以支持最高30个参数。但必须要注意,这里每个参数都必须为数值型,连逻辑型都不行。所以任何以下式子得到的结果都是0:

= sumproduct(A1:A100, B1:B100<>"a")        ' 错误用法,结果总是返回0!

解决方法之一是通过显性或隐性的转换将逻辑值转为数值型:

= sumproduct(A1:A100, N(B1:B100<>"a"))      ' 显性转换?
= sumproduct(A1:A100, --(B1:B100<>"a"))     ' 隐性转换,速度更快,推荐

另一个方法是使用连乘:

= sumproduct((A1:A100)*(B1:B100<>"a"))

使用连乘的技术原理可参考Excel区域计算的原理。它比上面的多参数形式运算速度要稍微慢一些,但也有以下两个好处:

  • 连乘的表达式不需要转换逻辑表达式,写法更为简单。
  • 连乘可突破最多30个参数式子的限制。

和sumifs的区别

office 2007引入了sumifs,可进行多条件求和,可以部分实现sumproduct的功能。但sumproduct有一个功能,sumifs无法做到。比如:

= sumproduct((A1:A100)*((B1:B100="a")+(B1:B100="b")))

即sumproduct可以实现嵌套的条件求和(包括and和or),而sumifs只能实现并列条件求和(即只能是and)。其实sumproduct的适用范围要宽的多,比如以下条件求和,sumifs都无法实现:

= sumproduct((A1:A100)*((C1:C100+D1:D100)>0)) ?
                      ' sumproduct可对不同区域进行预算

= sumproduct((A1:A100)*(C1:C100<D1:D100)) ? ? ?
                      ' sumproduct可对不同区域进行比较

= sumproduct((A1:A100)*(LOG(C1:C100,2))) ? ? ? ? ?
                      ' sumproduct可使用excel内置函数

其它

数组公式

sumproduct的所有功能都可以用公式组实现。比如将sumproduct换成sum,然后按CTRL+SHIFT+ENTER确认,可得到一模一样的结果

= sumproduct((A1:A100)*((B1:B100="a")+(B1:B100="b")))
{= sum((A1:A100)*((B1:B100="a")+(B1:B100="b")))}

但数组公式难以被理解,输入速度慢(无法拖动等等),并且一般情况下数组公式比普通公式效率要低,所以能用普通函数实现的功能,建议直接使用普通函数。

加权平均值

value和weight分别为值和权重,那么可以通过以下方法

= sumproduct(value*weight) / sum(weight)

公式可包含数据

Excel支持直接输入数据,所以我们可以使用下面这样的表达式:

= sumproduct((A1:A4)*{1;2;3;4})

注意下面公式得到的结果是一样的,但运算效率要低很多。从Excel区域计算的原理知道,下面的式子中sumproduct的参数被展开成一个4×4的方块,所以运算速度要慢一个级别(线性 vs 平方):

= sumproduct((A1:A4)*{1,2,3,4})

这里区别在于";"号表示换行,而","号表示下一列,所以{1;2;3;4}是一个列向量,而{1, 2, 3, 4}是一个行向量。我们也可以将其结合,{1,2,3,4;5,6,7,8;9,10,11,12;}是一个3×4的矩阵。

作者:admin | Categories:软件使用 | Tags: 、、、

一条评论

  1. Memorylunar说道:

    谢谢!请教: 隐性转换的 --() 的原理。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

  • 方言报站也是一种有意义的尝试 2019-05-22
  • 财经随笔:年近半百,“金融科技”仍是少年 2019-05-20
  • 山西寿阳:竹马戏演员的台前幕后 2019-05-19
  • 主城赏荷地图出炉 快带上相机出发 2019-05-19
  • 男人不安全了?日本读心美女机器人,你咋想的它全知道! 2019-05-03
  • 重庆市永川区:“1+8+X”模式探索基层人民调解新路子 2019-05-03
  • 春节我在岗:爸妈,儿子在军营给您们拜年了 2019-04-22
  • 传统文化,在中国文化里,居住是衡量一个家庭生活的基本因素。 2019-04-15
  • 俄韩就铺设途经朝鲜的天然气管道恢复磋商 2019-04-15
  • 经营者要想“我心换你心”,就要未雨绸缪,让不诚信的诱惑少一点,如此才能在市场中生存下来。反过来说,承担不起亏损就关门歇业,是否也是一种不诚信呢? 2019-04-11
  • 江西省能源集团公司党委副书记胡运生等2人被调查 2019-04-11
  • 乌鲁木齐:这个端午,他们的假日叫“坚守” 2019-03-29
  • 中国电信安康分公司60家智慧家庭便民服务中心盛大开业中国电信安康-最新活动 2019-03-28
  • 中心城区核心片组完成签约清零任务 2019-03-28
  • (Dos sesiones) Legislativo nacional de China concluye sesión anual Spanish.xinhuanet.com 2019-03-28
  • 510| 208| 202| 394| 226| 741| 446| 997| 149| 690|