例1:在A1中输入E:\CNC图档\2018\DB\2018-0003\LEXAN-ROLLER-6-GROOVE\LEXAN-ROLLER-6-GROOVE.mcx-9 在B1中截取2018-0003 在C1中截取LEXAN-ROLLER-6-GROOVE
例2:在A1中输入E:\CNC图档\2018\RF(西雅图)\SON0006M7\SON0006M7.mcx-9 在B1中截取RF(西雅图) 在C1中截取SON0006M7
每次的路径是不一样的,但是截取的位置是一样的。尽量要用能通用的公式。
B1输入:
=MID($A1,LARGE(("\"=MID($A1,ROW($1:$100),1))*ROW($1:$100),4-COLUMN(A:A))+1,LARGE(("\"=MID($A1,ROW($1:$100),1))*ROW($1:$100),3-COLUMN(A:A))-LARGE(("\"=MID($A1,ROW($1:$100),1))*ROW($1:$100),4-COLUMN(A:A))-1)
数组公式,即同时按住Ctrl+Shift+Enter结束公式编辑,会自动生成一对“{}”,右拉下拉填充。
公式中以单元格字符长度不超过100个为例,如果有更多,将公式中的100改大些,比如改成300。
追问如果我要截取第一个中的 DB 要怎么做
追答由于路径深度不一样,不知道到底要提取哪部分,公式比较难办,现在给出的公式是提取的倒数第三个与最后一个“\”之间的两个内容。如想另行提取,必须给出需要提取哪部分的规律,才好给出提取公式。
追问在A1中输入E:\CNC图档\2018\DB\2018-0003\LEXAN-ROLLER-6-GROOVE\LEXAN-ROLLER-6-GROOVE.mcx-9
在B1中截取DB
在C1中截取2018-0003
在D1中截取LEXAN-ROLLER-6-GROOVE
前面的“E:\CNC图档\2018\”
是共有的么,将公式改为从第三个“\”后,分别提取两个“\”之间的内容,B1输入:
=IFERROR(MID($A1,SMALL(IF("\"=MID($A1,ROW($1:$500),1),ROW($1:$500)),COLUMN(C:C))+1,SMALL(IF("\"=MID($A1,ROW($1:$500),1),ROW($1:$500)),COLUMN(D:D))-SMALL(IF("\"=MID($A1,ROW($1:$500),1),ROW($1:$500)),COLUMN(C:C))-1),"")
数组公式,即同时按住Ctrl+Shift+Enter结束公式编辑,会自动生成一对“{}”,右拉下拉填充。
谢谢
亲,如果中间的文字部分是连续的,还可以有办法。
如下图,在B1粘贴数组公式。注意:是数组公式,在单元格里粘贴了以后,千万不要按回车退出,而要按“Ctrl+Shift+回车”退出:
=MID(A1,MIN(IF(LENB(MID(A1,ROW(1:100),1))=2,ROW(1:100))),MAX(IF(LENB(MID(A1,ROW(1:100),1))=2,ROW(1:100)))-MIN(IF(LENB(MID(A1,ROW(1:100),1))=2,ROW(1:100)))+1)