分享

SUM函数我们都会用,可你知道IMSUM函数吗?小身材大能量!

 EXCEL应用之家 2024-05-14 发布于上海

欢迎转发和点一下“看”,文末留言互动!

置顶公众号或设为星标及时接收更新不迷路



小伙伴们好,今天在论坛上看到这样一道题目,忍不住要和大家分享一下。原题是这样子的:



怎样分别对“/”左右两侧的数据求和呢?

这样的数据录入结构我们是经常会遇到的。因此这道题目的方法和思路将会是你今后解决这类问题的宝藏!


01

普通方法:



这道题我们最直接的反应是,分别对“/”左右两侧的数据求和后,再用“/”把它们连接起来。

=SUM(--LEFT(C3:E3,FIND("/",C3:E3)-1))&"/"&SUM(--MID(C3:E3,FIND("/",C3:E3)+1,99))

在单元格F3中输入上述公式,三键回车并向下拖曳即可。

一句话解释:

这个公式思路非常简单。用FIND函数在源数据中查找“/”,找到后就很可以分别向左和向右提取数据。完成后再分别求和,最后用“/”把两部分再组合起来。


02

华丽的公式:



EXCEL为我们提供了一组工程函数。虽然在平时我们几乎用不到工程函数,但今天的这道题目却巧妙地利用的工程函数的特点。

=SUM(IMREAL(SUBSTITUTE(C3:E3,"/","+")&"i"))&"/"&SUM(IMAGINARY(SUBSTITUTE(C3:E3,"/","+")&"i"))

在单元格F3中输入公式“”,三键回车并向下拖曳即可。

SUBSTITUTE(C3:E3,"/","+")&"i")

利用SUBSITUTE函数将“/”替换为“+”,并添加后缀“i”,其实成为复数格式。这时,生成一个内存数组{"1200+12i","1300+13i","1500+14i"}。这这个内存数组中,加号前面的是实数部分,加号后面的是虚数部分。

IMREAL(SUBSTITUTE(C3:E3,"/","+")&"i")

接下来利用IMREAL函数来提取复数中的实数部分。结果为{1200,1300,1500}。

IMAGINARY(SUBSTITUTE(C3:E3,"/","+")&"i")

同样,虚数部分的结果是{12,13,14}

SUM(IMREAL(SUBSTITUTE(C3:E3,"/","+")&"i"))&"/"&SUM(IMAGINARY(SUBSTITUTE(C3:E3,"/","+")&"i"))

最后分别求和后再用“/”将两部分组合。


03

惊艳的公式:



还是工程函数,不过这次公式更加简洁明了。

=SUBSTITUTE(SUBSTITUTE(IMSUM(SUBSTITUTE(C3:E3&"i","/","-")),"-","/"),"i",)

在单元格F3中输入上述公式,三键回车后并向下拖曳即可。

SUBSTITUTE(C3:E3&"i","/","-")

同样是利用SUBSTITUTE函数替换符号,形成复数格式。它生成的结果是{"1200-12i","1300-13i","1500-14i"}。

IMSUM(SUBSTITUTE(C3:E3&"i","/","-"))

这次使用IMSUM函数,同时对实数部分和虚数部分求和。结果为"4000-39i"。

你看,这时所有的实数部分总和变为了一个新的复数的实数,所有虚数部分的总和变为了一个新的复数的虚数。

SUBSTITUTE(SUBSTITUTE(IMSUM(SUBSTITUTE(C3:E3&"i","/","-")),"-","/"),"i",)

最后再连续用两次SUBSTITUTE函数将符号替换就好了。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多