excelperfect 本次的練習(xí)是:下面列出了一個(gè)完整的文件路徑: D:\myData\category\完美Excel\VBA\Skills\test.xlsm 想要查找第5個(gè)反斜杠的位置,,如何使用公式獲?。?/span> 先不看答案,,自已動手試一試,。 公式 公式1: =FIND('\',A1,FIND('\',A1,FIND('\',A1,FIND('\',A1,FIND('\',A1)+1)+1)+1)+1) 使用FIND函數(shù)從左至右查找。最里面的FIND函數(shù)查找第一個(gè)“\”出現(xiàn)的位置,,其外層的FIND函數(shù)從該位置右側(cè)查找第二個(gè)“\”出現(xiàn)的位置,,依此類推,最外層第5個(gè)FIND函數(shù)查找第5個(gè)反“\”出現(xiàn)的位置,。 公式2: =SEARCH('\',A1,FIND('\',A1,FIND('\',A1,FIND('\',A1,FIND('\',A1)+1)+1)+1)+1) 與FIND函數(shù)原理相同,。 但是SEARCH函數(shù)和FIND函數(shù)的區(qū)別在于是否區(qū)分大小寫,。SEARCH函數(shù)不區(qū)分大小寫,而FIND函數(shù)區(qū)分大小寫,。 以上兩個(gè)公式雖然很長,,但很好理解,缺點(diǎn)是如果要查找的第10個(gè)反斜杠,,則需嵌套10個(gè)函數(shù),,公式更冗長。 公式3: =FIND(CHAR(5),SUBSTITUTE(A1,'\',CHAR(5),5)) 公式利用了SUBSTITUTE函數(shù)可以指定要替換的字符的位置并使用另一字符進(jìn)行替換的特點(diǎn),。因此,,公式3使用CHAR(5)代表的字符替換第5個(gè)“\”,然后FIND函數(shù)查找CHAR(5)代表的字符出現(xiàn)的位置,,也就是第5個(gè)“\”的位置,。 這個(gè)公式很簡潔,但要確保查找的字符串中沒有CHAR(5)代表的字符,。 公式4: =LARGE(((MID($A1,ROW(INDIRECT('1:'&1024)),1))='\')*ROW(INDIRECT('1:'&1024)),2) 這是一個(gè)數(shù)組公式,。 公式中的: MID($A1,ROW(INDIRECT('1:'&1024)),1))='\' 將單元格A1中的字符串拆成由單個(gè)字符組成的數(shù)組,然后將其每個(gè)元素與“\”比較,,得到一個(gè)由TRUE/FALSE值組成的數(shù)組,。很顯然,字符串中對應(yīng)著“\”的值為TRUE,。而ROW(INDIRECT('1:'&1024))生成由1至1024組成的數(shù)組。兩個(gè)數(shù)組相乘,,只有TRUE值對應(yīng)的數(shù)值是除0外的整數(shù)且是各“\”的位置,,而我們要查找的“\”是倒數(shù)第2個(gè),也就是數(shù)組中的第2大值,。
|
|