這個問題,其實也是昨天提到的那位前同事提出的問題。
正如昨天所說,通常批量獲取文件名之后,會有一些進一步的需求。
一開始是這樣的。
圖號比較敏感,我模擬一下,大概這樣: 某某部件圖.abc
前面是字母加數字的一串圖號,后面是中文的名稱,中間用一個空格隔開。最后面的.abc是文件后綴名。
這種如果是比較規律的命名方式,還是比較好拆分的。
方法一:
按空格進行分列。后綴名部分可以多進行一次分列并且不保留如何更改圖表上名稱,或者批量替換為空即可。
方法二:
公式。
假設,文件名清單在A1單元格中。則,
B1 =LEFT(A1,FIND(" ",A1)-1);
C1 =(MID(A1,FIND(" ",A1)+1,99),".abc","")
B1即為提取圖號。
比較好理解,用LEFT函數取文件名最左側的字符,字符長度用FIND函數查找空格所在的位置來確定。
C1為提取名稱。
由于名稱在中間,我們用到了MID函數,起始字符也是用FIND函數查找空格來定位,
長度其實可以通過查找“.”的位置再減去空格的位置來計算,但是這樣太麻煩,我直接用了99,即取空格后的所有字符。應該不會有這么長的文件名的。
因為后綴名是固定的,再用函數將后綴名替換成空即可。
如果,這里的圖號都是固定的10個字符,那么空格的位置其實就是固定的,不需要用FIND函數來計算了。
公式就可以簡化成:
B1 =LEFT(A1,10)
C1 =MID(A1,12,LEN(A1)-15)
這樣是不是就好理解多了。
還沒完,客戶提出了新的需求。
圖號和名稱中間,還有可能有個版本號。
是的,可能有如何更改圖表上名稱,可能沒有。也不排除版本號后續會升級到AA。
像這個樣子: 某某部件圖.abc,或-A某某部件圖.abc,或-AA 某某部件圖.abc
而且,在聊的過程中,還發現了一個新的情況,
就是中間這個空格吧,原則上是只有一個,但不保證不會多打一個或幾個……
我感覺他在挑釁我,似乎在說:就是這么任性,看你咋辦?
好吧,沒關系,這都不是事。
B1 =LEFT(A1,10)
C1 =(MID(A1,FIND("-",A1)+1,2),"")
D1 =TRIM((MID(A1,FIND("",A1)+1,99),".abc",""))
版本沒有,或者有一位或者兩位,都可以。中間空格一個或者多個也都沒關系。
客戶表示很滿意,提出要請我吃飯。