二维码 购物车
部落窝在线教育欢迎您!

用SUBSTITUTE替换法为产品找到最匹配的类别

 

作者:ITFANS来源:部落窝教育发布时间:2024-11-12 11:38:40点击:527

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,禁止转载。

编按:

产品名称同时包含了分类和颜色等特性描述,怎么从中得到其分类呢?由于产品分类或类别的字符组成不固定、字符数不固定、位置不固定,不适合用提取的方法。有人用SEARCH进行查找匹配,但笔者推荐用SUBSTITUTE替换法。

 

有伙伴常需要为品名分类。比如下表,A列是品名,D列是已有的分类,现在需要在B列给出各品名的分类。如果品名中不包含任何现有分类,则归类为“other”。

 


 

很明显,品名中已经包含了分类,譬如A2的分类就应该是D18,现在要做的就是怎么把它提取出来。由于产品分类或者类别的字符组成不固定、字符数不固定、位置不固定,不适合用提取的方法。

 


 

很多伙伴的第一反应就是查找,用SEARCH函数在品名中查找D列的分类。如果品名中包含现有分类,会得到一个数字,否则就是错误值。需要的分类就是这些数字对应的分类中的一个。

 

 

这种思路最终需要对D列的分类进行升序排列才能准确适配到对应的分类。

低版本用户可以先对D列进行升序排列,然后用LOOKUP查找:

=IFERROR(LOOKUP(99,SEARCH($D$2:$D$67,A2),$D$2:$D$67),"other")

 



 

为何LOOKUP查找的是99?涉及的原理请看《一文讲透LOOKUP二分法原理》

高版本(Excel 2021及以上)用户可以先使用SORT函数排序,再取最后一个SEARCH值对应的分类:

=IFERROR(TAKE(FILTER(SORT($D$2:$D$67),ISNUMBER(SEARCH(SORT($D$2:$D$67),A2))),-1),"other")

 


 

笔者推荐伙伴换一个思路来做:将各分类作为品名中的旧字符替换为空,若用某个分类替换后品名字符数最少,则它就是需要的分类。该思路适合所有版本,不需要排序

B2中输入如下公式即可得到分类:

=INDEX($D$2:$D$67,MATCH(MIN(LEN(SUBSTITUTE(A2,$D$2:$D$67,""))),LEN(SUBSTITUTE(A2,$D$2:$D$67,"")),0),)

 


 

再添加一个IF判断:

如果替换后最小字符数等于未替换时的字符数,则说明分类为“other”。




 

 

本文配套的练习课件请添加客服微信buluowojiaoyu索取。

Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择

扫下方二维码关注公众号,可随时随地学习Excel:

相关推荐:

一文讲透LOOKUP二分法原理

新函数Take和Drop用法

SORT函数远比用排序按钮方便

妙用FILTER函数实现任意关键词查询数据

版权申明:

本文作者ITFANS;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。