分享

如何将乘法转化为加法,用对数函数

 刘卓学EXCEL 2021-04-02
你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天来分享2个案例,第一个案例是对二维数组的每一行求和,第二个案列是对二维数组的每一行求积。都要用到mmult,此外还要用到高中学过的对数函数ln或log。

1.求总分最高的那个同学的总分

下图是各位同学三科的成绩表,现在要计算出哪位同学的总分最高,并把最高总分算出来。首先分别要算出各位同学的总分,然后再从中取最大值。

MMULT(B3:D7,{1;1;1})这部分就是对B3:D7这个区域的每一行分别求和,就得到了各位同学的总分,如上图所示。最外层再套个max就可以求得最高总分。公式为:=MAX(MMULT(B3:D7,{1;1;1}))

相信大家对mmult都比较熟悉了,就不再详细说明了。主要是为案例2做铺垫。不熟悉的小伙伴可以搜索之前的文章。

2.对所有长方体的体积求平均值
下图有ABCD4个长方体,告诉了长宽高,求这4个长方体体积的平均值。首先要算出每个长方体的体积,然后再对4个体积求平均值。我们知道,长方体的体积=长✖宽高。所以,这个题实际是对B13:D16这个区域的每一行求积。
对每一行求和可以直接用mmult,但是对每一行求积就要用到对数函数了。因为对数函数可以把乘法转化为加法。
这里就要用到下面两个对数公式了:

知道了这两个对数公式,就可以看我们上面的那个公式了。=EXP(MMULT(LN(B13:D16),{1;1;1}))

为了让大家直观的理解这个公式,我画了个分步的图。第一步,用ln对B13:D16取对数,如①所示;第二步,用mmult对第一步结果的每一行求和,如②左列所示,根据第2个对数公式,其实可以转为②右列形式;第三步,根据第1个对数公式,可以用exp得到乘积的结果。

这样就用对数的方法实现了对每一行求积的效果。要注意的是这个方法只适用于正数,因为对数函数的真数必须是大于0的。

最后4个长方体的体积求出来后,就可以求平均值了。公式为:=AVERAGE(EXP(MMULT(LN(B13:D16),{1;1;1})))

链接:

https://pan.baidu.com/s/1BOcVLCFRFujrSvlGsTH_PA

提取码:0kvv

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多