分享

函数应用,构思有多巧妙,写出来的公式就有多精妙!

 EXCEL应用之家 2022-04-26


送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

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



小伙伴们好,今天要和大家分享一道文本处理的问题,是我的一位群友提出的,而群里另一位群友给出的答案有个非常新颖的技巧,特此分享出来给大家。

题目如下。要求提取出大于0小于100的直径与Ø合并,同时忽略矩形尺寸300*50。



源数据的字符串构成还是比较有规律的,文本在左侧,数字在右侧。总体思路是,将数字提取出来后做一个逻辑判断,将符合条件的数字和Ø合并,形成最终答案。


01

LOOKUP函数配合MATCH函数可以很方便地解决这个问题。



在单元格D3中输入公式“=IFERROR("Φ"&MATCH(LOOKUP(9E+307,--RIGHT(IF(ISNUMBER(FIND("*",B3)),"",B3),ROW($1:$99))),ROW($1:$99),),"")”,三键回车并向下拖曳即可。

思路:

  • IF(ISNUMBER(FIND("*",B3)),"",B3)部分,利用FIND函数查找“*”,配合ISNUMBER和IF函数,屏蔽了矩形尺寸

  • 利用RIGHT函数从右向左一次提取长度1、2、3...个字符

  • 利用LOOKUP函数的经典用法,提取出完整的数字部分

  • 由于要求只提取小于100的尺寸,因此这里使用了MATCH函数在自然数序列1-99中查找上述部分的结果,函数的结果既是该结果在自然数序列中的位置信息,又同时是该数字本身

  • 最后,合并后利用IFERROR函数屏蔽错误,完成

这里有一个非常新颖的运用,即用MATCH函数来定位区间。下面这个公式,也同样是借助了这种方式。


02



在单元格D3中输入公式“=IFERROR("Φ"&MATCH(-LOOKUP(1,-MID(B3,MIN(FIND(ROW($1:$10)-1,B3&1/17)),ROW($1:$15))),ROW($1:$99),),"")”,三键回车并向下拖曳即可。

思路:

  • B3&1/17部分的目的,是让这个字符串中包含所有从0-9的数字。1/17就包含了0-9所有的数字

  • 利用FIND函数在上面这个字符串中分别查找0-9这10个数字,并返回位置数最小的那个数值,也就是字符串最左侧的那个数的位置

  • MID函数从该位置起,依次提取长度为1、2、3...的字符串

  • 利用LOOKUP函数的经典用法,提取完整的数字部分

  • 最后,合并后利用IFERROR函数屏蔽错误,完成。

这个公式当中,除了使用了和上个例子中一样的用MATCH函数来定位区间范围的技巧外,还利用1/17这个分式(它包含了0-9这所有的10个数字),从而定位出做左侧的数字的位置。


好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

推荐阅读

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多