都说他是扫地僧,专治各种疑难症!

文摘   教育   2024-11-14 20:01   上海  




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

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





小伙伴们好,今天要和大家分享一到烧脑的题目。题目是这个样子的。





根据商品名称中的描述,将规格提取出来单列在B列。

 

题目要求就这么多,但是解题过程可以一点也不简单。以前我们遇到的提取问题,基本上都可以使用LOOKUP、LEN、LFET/RIGHT等函数解决。今天这道题目有一个特点,那就是提取的内容要带上计量单位。

 

思考十秒钟……


01

简化版的LOOKUP函数应用


既然有计量单位,那么我们就把所有的计量单位写到公式里!





在单元格B2中输入下列公式,三键确认并向下拖曳。

=LOOKUP(9E+307,--RIGHT(LEFT(A2,MIN(FIND({"ml","g","克","L"},A2&"mlg克L"))-1),ROW($1:$9)))&LOOKUP(,-FIND({"ml","g","克","L"},A2),{"ml","g","克","L"})

首先我们要找到各个计量单位在源数据中的位置。如果没有怎么办?那就写进去。

FIND({"ml","g","克","L"},A2&"mlg克L")


利用FIND函数来查找每种计量单位,返回具体的位置信息。这部分的结果是{15,19,20,21}。

MIN(FIND({"ml","g","克","L"},A2&"mlg克L"))-1


利用MIN函数,找到最小值对应的那个单位,减去1,就是数值部分的最后一位的位置。

LEFT(A2,MIN(FIND({"ml","g","克","L"},A2&"mlg克L"))-1)


利用LEFT函数将计量单位前所有的字符串都提取出来。

--RIGHT(LEFT(A2,MIN(FIND({"ml","g","克","L"},A2&"mlg克L"))-1),ROW($1:$9))


利用RIGHT函数依次提取长度为1个、2个…,9个数值,并做减负运算得到数值。

LOOKUP(9E+307,--RIGHT(LEFT(A2,MIN(FIND({"ml","g","克","L"},A2&"mlg克L"))-1),ROW($1:$9)))&LOOKUP(,-FIND({"ml","g","克","L"},A2),{"ml","g","克","L"})


最后利用LOOKUP函数的经典应用,提取到数量部分。

 

后半部分的公式则是利用LOOKUP函数提取计量单位。

LOOKUP(,-FIND({"ml","g","克","L"},A2),{"ml","g","克","L"})


这是LOOKUP函数的基本用法,这里不再赘述了。

 

02

万能版的LOOKUP函数应用


这个公式更全面,更加烧脑。





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

=REPLACE(LOOKUP(99999,--RIGHTB(REPLACEB(A2,MIN(IFERROR(SEARCHB({"?ml","?g","?克","?瓶","?L"},A2),4^9))+1,99,""),ROW($1:$10)))&MIDB(A2,MIN(IFERROR(SEARCHB({"?ml","?g","?克","?瓶","?L"},A2),4^9))+1,999),1+MAX(MMULT((MID(LOOKUP(99999,--RIGHTB(REPLACEB(A2,MIN(IFERROR(SEARCHB({"?ml","?g","?克","?瓶","?L"},A2),4^9))+1,99,""),ROW($1:$10)))&MIDB(A2,MIN(IFERROR(SEARCHB({"?ml","?g","?克","?瓶","?L"},A2),4^9))+1,999),ROW($1:$20),1)={"l","g","克","瓶"})*ROW($1:$20),ROW($1:$4)^0)),999,"")

太复杂,不解释了,大家会套用即可。




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


-END-


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

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


我就知道你“在看”


推荐阅读

Excel应用之家
介绍、交流EXCEL各项功能在工作中的实际应用; 为你答疑解惑;分享各类图表、表格和模板;提供有偿代工服务。
 最新文章