先回顧一下昨天的題目: 截取字符串中的漢字部分,如下圖所示 分析:截取漢字,我們只需要兩個數(shù)字,一是第一個漢字的開始位置,二是漢字的總個數(shù)。 =MID(字符串,漢字開始位置,截取總個數(shù)) 從提交的答案來看,漢字總個數(shù)大家都是用lenb-len的方法獲取的。 ,LENB(A1)-LEN(A1) 所以,剩下的就是怎么判斷漢字的開始位置。 有同學(xué)用code提取字符的數(shù)字代碼然后對比 MATCH(TRUE,CODE(MID(A1,ROW($1:$10),1))>10000,0) 也有和文本型數(shù)字9直接對比 MATCH(TRUE,MID(A1,ROW($1:$99),1)>'9',) 也有和漢字吖對比 MATCH(1=1,MID(A1,ROW($1:$15),1)>'吖',) 也有巧妙的用midb截取,然后用” “查找 MATCH(' ',MIDB(A1,ROW($1:$20),1),0) 蘭色的參考答案是用Count判斷 COUNT(-LEFT(A1,ROW($1:99)))+1 解析: Left(a2,row($1:99)) 從左右分別截取1.2.3.4......99個字符,a2的值是12.55趙志東56,截取的結(jié)果是這樣的 {'1';'12';'12.';'12.5';'12.55';'12.55趙';'12.55趙志';'12.55趙志東';'12.55趙志東5'......... 從上面的結(jié)果看,在第一個漢字前,都是文本型數(shù)字形式,后面全是非數(shù)字。前面加一個 - 號可以把文本全轉(zhuǎn)換成數(shù)字,非數(shù)字轉(zhuǎn)換成錯誤值。 Count函數(shù)可以統(tǒng)計數(shù)字的個數(shù),所以: COUNT(-LEFT(A1,ROW($1:99))) 就可以統(tǒng)計出漢字前數(shù)字占多少位。 所以,完整的參考答案為: =MID(A2,COUNT(-LEFT(A2,ROW($1:100)))+1,LENB(A2)-LEN(A2)) 總結(jié): Count函數(shù)并不只是在單元格中統(tǒng)計數(shù)字個數(shù),更深入的應(yīng)用是它可以統(tǒng)計內(nèi)存數(shù)組中數(shù)字的個數(shù)。更重要的是它可以忽略錯誤值。 |
|