Excel
使用語法
FIND(find_text,within_text,start_num)
Find_text 是要查找的字元串。
Within_text 是包含要查找關鍵字的單元格。就是說要在這個單元格內查找關鍵字
Start_num 指定開始進行查找的字元數。比如Start_num為1,則從單元格內第一個字元開始查找關鍵字。如果忽略 start_num,則假設其為 1。
注意
使用 start_num 可跳過指定數目的字元。例如,假定使用文本字元串“AYF0093.YoungMensApparel”,如果要查找文本字元串中說明部分的第一個“Y”的編號,則可將 start_num 設定為 8,這樣就不會查找文本的序列號部分。FIND 將從第 8 個字元開始查找,而在下一個字元處即可找到 find_text,於是返回編號 9。FIND 總是從 within_text 的起始處返回字元編號,如果 start_num 大於 1,也會對跳過的字元進行計數。
如果 find_text 是空文本 (),則 FIND 則會返回數值1。
Find_text 中不能包含通配符。
如果 within_text 中沒有 find_text,則 FIND返回錯誤值 #VALUE!。
如果 start_num 不大於 0,則 FIND返回錯誤值 #VALUE!。
如果 start_num 大於 within_text 的長度,則 FIND 返回錯誤值 #VALUE!。
套用示例
A2=“廣東省東莞市東城區…”,A3=“黑龍江省哈爾濱市…”; 對含有不同地方的數據,利用“Find”函式,非常簡單地確定“省”出現的位置。
詳細解釋
公式“=FIND("省",A2)”中,“省”表示要查找的文本為“省”,(實際使用中,也可以很長的一串字元)。要找查找的對象是A2單元格的內容“廣東省東莞市東城區…”,因為沒有指定起始位置,所以系統從第一位開始。返回的“3”,表示“省“字在第三位。
而公式“=FIND("省",A3)”中,“黑龍江省哈爾濱市…”則返回4。
註:FIND函式,第一位查找內容,如果是文本的話,必須添加英語輸入法下的雙引號,否則函式無法計算。
與Find類似,Search函式也有相同的功能。它們的區別是,Find區分大小寫,而Search不分大小寫(當被查找的文本為英文時)。
另外,在Excel中,對文本進行處理的很多函式都提供了一個特別用來處理雙位元組字元(如中文,日文)的函式,一般是在原函式後加“B”,如FIND, 就有一個FINDB。LEFT,相對應的就是LEFTB等。其實,我們在實際套用中,使用不帶“B”的函式就足夠了。如果你想使用帶“B”的函式,則要特別注意,尤其是在組合運用函式時,其中一個函式使用帶“B”的形式,則其它有帶“B”形式的函式,全部都要使用其帶“B”的形式,否則結果極可能是錯的。
C++
泛型算法的 find
在非string類型的容器里,可以直接找出所對應的元素.find函式需要幾個參數:疊代器,下標值,所要找的元素
vector<int> a;
find(a.begin(),a.end(),1);
這句話就表示從a的頭開始一直到尾,找到第一個值為1的元素,返回的是一個指向該元素的疊代器。
find在string容器中用途比較廣
find_first_of,find_last_of,find_not_first_of,find_not_last_of等等
在string類型中,需要的參數也有疊代器,下標和要找的字元串,可以查找單個的字元。因為最後一個參數是const char & _Val(頭檔案algorithm的定義)
string a;find(a.begin(),a.end(),‘a’)這句話就是說,在a中找到第一個存在子串與'a'子串相等的字元串的首地址。返回指向該字元串首地址的疊代器(下一次疊代將會接著上一次的疊代,這樣很容易做出一個計算字元串中某個字元的出現次數,如右圖所示)。
find_last_of則是找到最後一個,
find_not_first_of是找出第一個不與“asd”相等的字元串的首地址