你好,我是刘卓。欢迎来到我的公号,excel函数解析。在工作或学习中,我们经常会对一些文本型的数字求和,这些数据可能是从别的系统中导出的,也可能是专门设置成文本格式的。直接用sum函数对这些数据求和,结果会返回0。
我无意中发现有一个函数可以对文本型的数字求和,今天就来分享下这个函数和它同类函数的一些用法。
1.对文本型的数字求和
如下图所示,AB两列是一些文本型数据,可以看到单元格左上角都是绿绿的。如果直接用sum求和,结果为0。因为sum会忽略区域或数组中的文本。而我们用imsum就可以得到结果,而且结果还是一个文本型的数字。最后我们也通过sum数组公式验证结果是一样的。
imsum是什么函数呢?它是一个复数函数,用来计算多个复数的和。复数函数基本都是以im开头。如下图所示:
什么是复数?复数包含实数和虚数,形如a+bi的形式。加号前面是实数部分,加号后面的是虚数部分,简称实部和虚部。a是实部系数,b是虚部系数。i是虚数单位,i的平方等于-1。更多复数的知识,请自行百度或复习高中数学。
下面来看提取实部系数和虚部系数的2个函数:
imreal返回复数的实部系数,imaginary返回复数的虚部系数。
下图左表是两个数的加法或减法,同一行都是加或都是减。现在的要求是将每一行的3个算式分别相加。什么意思呢?以第一行为例说明,加号前面的3个数相加,也就是1+4+10=15;加号后面的3个数相加,也就是2+5+9=16。最后的结果就是15+16,如E列所示。在E20单元格输入公式=SUBSTITUTE(IMSUM(A20:C20&"i"),"i",),按ctrl+shift+enter三键,下拉填充。A20:C20&"i"这部分将3个算式连接"i",变成3个复数;然后用imsum对这3个复数求和,结果为"15+16i";最后用substitute将"i"替换为空。如下图所示。复数的加法是实部和实部相加,虚部和虚部相加。
3.计算两个数的加减法
下图A列是两个数的加减法算式,现在的要求是计算出它们的结果。这个题就有多种方法了。第1种,也是最简单的,就是将它们变成复数,然后分别提取实部和虚部系数,最后将实部和虚部系数相加。公式如下:=IMREAL(A27&"i")+IMAGINARY(A27&"i")。第2种,要用到复数的除法imdiv,公式如下:=SUM(IMREAL(IMDIV(A27&"i",{1,"i"})))。
imdiv返回两个复数的商,第1参数是被除数(分子),第2参数是除数(分母)。
在IMDIV(A27&"i",{1,"i"})中,第1参数A27&"i"的结果为"1+2i",第2参数是一个常量数组{1,"i"}。也就是用"1+2i"分别除以{1,"i"}中的每一个值,那么结果也是一个数组{"1+2i","2-i"}。
"1+2i"除以1还是"1+2i"。"1+2i"除以"i",结果为"2-i",实际就是将原来的虚部系数变为结果的实部系数,这一招叫做“移形换位”。
接下来用imreal提取{"1+2i","2-i"}中每一个复数的实部系数,结果为{1,2},最后用sum求和。第3种,公式为=IMREAL(IMDIV(A27&"i","1+i"))*2,大家自己思考这个公式的逻辑关系。
https://pan.baidu.com/s/1RcA8e60DukMCshflDffgjA