分享

53给大家推荐一个冷门函数:IMREAL

 asaser 2022-05-13
今天给大家分享一个冷门函数:IMREAL。

IM是虚数、RE是实数、AL是复数形式,IMREAL用于计算复数的实数。体育老师和他的少年朋友们可能会觉得这句话有点儿高深莫测,不过这个函数只有一个参数,实际用法其实很简单。

我举个例子。

如下图所示,A列是人名,B列是出差开始-结束日期。

图片

假设现在需要从B列数据中计算出差的开始日期。

常规的函数解法如下:

解法1:常规解法 ▼

=LEFT(B2,FIND("-",B2)-1)*1

而用IMREAL则简洁优雅一些:

解法2:IMREAL ▼

=IMREAL(B2&"i")

复数的表示方法是a+bi。其中a为实部,b为虚部,i为虚数单位。B2&"i"的计算结果为2021/11/20-2022/2/11i,也就将数据转换为复数形式(2021/11/20+-2022/2/11i)。然后使用IMREAL函数返回复数的实数:2021/11/20。

如果需要计算出差的结束日期呢?

可以使用IMAGINARY函数返回复数的虚部系数:

=-IMAGINARY(B2&"i")

图片

以为这就结束了?——我是这么简单的人吗? 如果你愿意你一层一层一层的剥开我的心,你会发现,咳,打个响指,跟我走吧。

现在,假设需要计算每个人出差的天数,也就是B列两个日期之间的差。

常规解法如下:

解法1:常规解法 ▼

=MID(B2,FIND("-",B2)+1,99)-LEFT(B2,FIND("-",B2)-1)

用刚刚新开的技能包,虚数减去实数,解法如下:

解法2:虚数-实数 ▼

=-IMAGINARY(B2&"i")-IMREAL(B2&"i")

但如果体育老师教过复数之商的话,还可以这么解:

解法3:复数商 ▼

=-IMREAL(IMDIV(B2&"i","1+i"))*2

IMDIV用于返回2个复数的商,复数除法的计算过程如下图所示,不要多看,看懂看不懂都没啥,记得上面这个函数套路可以计算一个单元格内两个数值之间的差即可。

图片

回忆一下被数学支配的恐惧吧👆

摊手,看到这里,晕过去的同学,可以抬下去了。

耸肩,继续提一个问题,如何将B列的数据转换为下图C列所示的日期格式,即从年-月-日转换为年月月日日

图片

古灵精怪的复数解法参考如下:

嘿,那个复数 ▼

=TEXTJOIN("-",,TEXT(IMREAL(IMDIV(B2&"i",{"1","-i"})),"emmdd"))

IMDIV(B2&"i",{"1","-i"})计算两个复数的商,返回{"44520-44603i","44603+44520i"},实数部分分别是开始日期和结束日期。用IMREAL函数获取实数,再用TEXT函数转换为emmdd的日期格式,最后用TEXTJOIN函数串联成一个字符串。

没了,今天分享的内容就这些,意犹未尽的话,明天再给大家分享另一个用法奇特的超级冷门函数


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多