无规律文本拆分,这些函数你得会

今天文章来源于表格学员训练营群内答疑,混合文本拆分。


其实拆分不难,只要规则明确就好办。就怕规则不清晰,或者规则太多。那真是,Oh,my god.


无规律文本拆分,这些函数你得会


如上图所示进行拆分,文字表达实在是有点难,所以小熊变身灵魂画手了,大概就是这个意思,文本拆分成3段,第一段是区域,第二段是具体店面,第三段是产品类别。


乍一看,没思路,浆糊啊。仔细一看,还是没思路,更多浆糊啊。


无规律文本拆分,这些函数你得会


按照字符长度分列,长度不固定,所以只能试试利用关键字拆分。


第一段是区域,关键字是“餐饮”或者“餐饮工业”。

第二段是店面,这个毫无规律可言,实际上有好几百个店面。

第三段是产品,有很多细分品种,但是可以归属于几个大类。


所以思路是构建关键字列表,提取出第一段和第三段,替换法截取第二段。


一、提取区域FIND/IFERROR/MAX/LEFT


直接看公式,数组公式哦,输入完毕之后要按Ctrl+shift+enter三键结束。


LEFT(A2,MAX(IFERROR(FIND({"餐饮";"工业"},A2),0))+1)


首先分析出,第一段的关键字是“餐饮“或者是”工业”。所以只要想办法找到这两个词组出现的位置就可以。接下来用left提取左侧字符。


无规律文本拆分,这些函数你得会


Find函数查找指定字符在字符串中出现的起始位置。由于这里面要查找多个字符,所以用的是数组公式。


FIND({"餐饮";"工业"},A2)查找关键字在字符串中出现的位置,返回的是6;#VALUE!,关键字“工业”查找不到,所以需要用iferror错误屏蔽。


由于有些文本中所有关键字都出现,所以需要用max提取出最后一个关键字的位置。然后用left提取左侧字符得到区域。


二、提取产品FIND/IFERROR/MAX/MID


产品名称的列表稍微多一些,但是思路是一样的。


MID(A2,MAX(IFERROR(FIND({"小熊";"专用面包粉";"蛋糕粉"},A2),0)),20)

无规律文本拆分,这些函数你得会


在确定了关键字段第一个字符的位置之后,用Mid函数从中间提取。由于不知道要提取的字符有多长,指定一个比较大的数字就可以,这里用的是数字20。


三、提取店面LEN/MID


其实这里面最难提取的是店面,因为根本就不可能构造关键字列表,实在是太多了。所以我们取巧用的是排除法。


MID(A2,LEN(B2)+1,LEN(A2)-LEN(B2)-LEN(D2))


MID函数从中间提取,第一参数,从第几个字符开始提取,由第一段区域的长度确定,中间要提取出多少个字符,这个原本很难确定,但是现在已经提取出第一段和第三段,所以由LEN(A2)-LEN(B2)-LEN(D2)就可以确定中间提取多少个。


无规律文本拆分,这些函数你得会


今天的示例看起来很复杂,但是实际上只要找到规律,结合函数其实还是挺简单的。


作者 小熊

Excel表格学院联合创始人,团队核心成员。


分享到:


相關文章: