你好,我是刘卓。欢迎来到我的公号,excel函数解析。好久没更新了,excel函数我都快忘光了,哈哈。一个是平时工作琐事比较多,没有精力和时间,另一个是没有动力,还是躺在床上刷手机比较舒服。
今天分享的内容对于实际工作也没啥帮助,既提高不了效率,还有点费脑筋,无聊的小伙伴可以来看看,顺便帮你复习下初高中的数学知识。
好了,接下来进入咱们今天的主题。如何不用加法和sum系列函数来求和。以几个例子来进行说明。
1.求各位同学的总成绩
下表展示的是各位同学的语文、数学、英语3科成绩,求各位同学的总成绩。对于这个问题,就连刚学函数的初学者都会。在E3单元格输入公式=SUM(B3:D3)或=B3+C3+D3,向下填充。
好了,我们的问题来了,如果不让你用加法或者sum系列函数,该如何求和?可能你觉得这个问题太傻,我也有点觉得。(不让用加法,又让求和,脑袋有坑吧,闲的dan疼······各种词汇,自己脑补。)
其实真的可以做到,如下图所示。在F3单元格输入公式=LOG(PRODUCT(2^B3:D3),2),按ctrl+shift+enter三键结束,向下填充。和用sum求和的结果完全一样。其实原理很简单,就是初高中学习过的幂函数和对数函数的知识。下面给出它们的2个公式:第1个公式是同底数幂相乘,底数不变,指数相加。a是底数,大于0且不等于1。m和n都是指数,属于全体实数。第2个公式是对数函数的一个公式,同样a是底数,m是指数。有了这两个公式,我们就可以看上面excel函数公式的运算过程了。以第1位同学于欣芝为例说明:2^B3:D3这部分选取2为底数,返回3科成绩的次方数,也就是2的67次方,2的43次方,2的36次方,形成一个数组。PRODUCT(2^B3:D3)这部分用product函数让上一步数组中的3个数字进行相乘的运算,这样就是同底数幂相乘的运算,最后的结果为2的(67+43+36)次方,也就是2的146次方。LOG(PRODUCT(2^B3:D3),2)这部分用对数函数log返回以2为底,2的146次方的对数,结果自然就是146,也就是3科成绩的总和。看到这里,各位小伙伴就明白了,尽管函数公式中没有用到加法和sum系列函数,但是运算的过程中会产生加法,所以本质还是离不开加法的。
那这个公式只能对正数求和吗?我们可以看下面的第2个例子。
2.计算各公司前3个季度的总盈亏金额
下表展示的是各公司前3个季度的盈亏数据,正数代表盈利,负数代表亏损,求前3季度总的盈亏金额。就是把这3个数据加起来,公式为=SUM(B15:D15)。现在数据源中有负数和0,看看我们第1题的公式是否适用。在F2单元格输入公式=LOG(PRODUCT(2^B15:D15),2),按ctrl+shift+enter三键结束,向下填充。发现结果和sum函数的结果完全一样。说明这个公式对于所有实数的加法都是适用的,只要你选的底数大于0且不等于1,比如选10,e都可以。
既然能用这个公式求和,那能不能用来求差呢?下面看第3个例子。
3.求各公司前2个季度的总利润
下表展示的是各公司前2个季度的营业额和成本,求它们在前2个季度的总利润。利润就是营业额减去成本,所以初学者都知道的公式为=B24-C24+D24-E24或=SUM(B24:E24*{1,-1,1,-1})。还是回到我们最开始的问题,如何不用sum或加法来求和或求差。有了前两个例子的引入,你能不能想到这个题目该如何做?可以先自己想一会。在G24单元格输入公式=LOG(PRODUCT(2^(B24:E24*{1,-1,1,-1})),2),按ctrl+shift+enter三键结束,向下填充。结果和上图F列的一样。B24:E24*{1,-1,1,-1}这部分让营业额乘以1,成本乘以-1,得到的结果为{55,-30,66,-20}。然后以2为底数,返回2的{55,-30,66,-20}次方。再用product让这4个数字相乘,就是同底数幂的乘法,结果为2的(55-30+66-20)次方,也就是2的71次方。最后用log返回以2为底,2的71次方的对数,那就是71。此公式还可以有另一种写法,公式为=LOG(PRODUCT(2^B24:E24^{1,-1,1,-1}),2),按ctrl+shift+enter三键,向下填充。
https://pan.baidu.com/s/17Pn9UE4KliY4BFtM_5Jbew