239 | EXACT函數的應用及使用實例 |
EXACT函數檢查兩個文字字串是否完全匹配,包括大小寫是否相同,但忽略格式上的差異。如果文字字串完全相同,那麼函數的結果是TRUE;如果不完全相同,那麼結果是FALSE。
在什麼情況下使用EXACT函數?
除了檢查兩個儲存格看是否其內容完全相同外,可以使用EXACT函數來完成下列任務:
1. 使用資料有效性阻止改變儲存格。
2. 在資料有效性儲存格中強制大寫輸入。
3. 在代碼列表中檢查是否完全匹配。
4. 在查閱資料表中找到完全相同項。
5. 在列表中統計完全匹配項。
6. 查清兩個儲存格之間的不同
7. 進行區分大小寫的比較。
EXACT函數 函數類型:文字函數 |
說 明: 使用固定餘額遞減法,計算一筆資產在給定期間內的折舊值。 語 法: EXACT(Text1,Text2) 參 數: Text1是第1個文字字串。 說 明: 可以輸入儲存格參照或文字字串作為Text1和Text2參數。 |
範例:
Ø EXACT陷阱
在Excel 2007説明裡,EXACT函數的備註部分有下列說明:
「可以使用雙等號(==)比較操作符號代替EXACT函數來進行精確的比較。例如=A1==B1與=EXACT(A1,B1)傳回相同的值。”
這是不正確的,在Excel中沒有「雙等號」操作符號,這份備註在Excel 2010以後的說明裡已經刪除。
範例1:測試密碼
已經在活頁簿中某工作表儲存格輸入了一個隱藏的密碼,並且將該儲存格命名為「pwd」。使用者輸入密碼,並且將他們的輸入與「pwd」儲存格的內容進行比較。
在下圖中,隱藏的密碼在儲存格A2中,該儲存格被命名為「pwd」。
在另一工作表中,使用者輸入密碼,你使用EXACT函數進行測試。
在「工作表2」工作表中,用戶在儲存格A2中輸入密碼。
在B2儲存格中,使用等號操作符號將A2中的值與pwd中的值進行比較:=A2=pwd
在B3儲存格中,EXACT函數將A2儲存格與pwd中的值進行比較,包括大小寫:=EXACT(A2,pwd)
如果兩個儲存格中的內容相同,包括大小寫也相同,B3儲存格顯示TRUE。任何的格式差異,例如粗體,都將被忽略。
如果內容有差異,即使一個字母存在大小寫不同,B3儲存格將顯示FALSE。
範例2:允許修改儲存格
使用者輸入正確的密碼後,就允許修改工作表中指定的儲存格。例如,在E2儲存格中自訂資料有效性公式能控制修改每日利率。
在資料有效性對話方塊中使用下列公式,僅當A2中輸入的密碼與pwd儲存格中隱藏的密碼完全相同時,使用者可以在儲存格E2中輸入值。同時,E2中輸入的值必須大於0且小於0.1。
步驟1: 點取「資料 > 資料驗證 > 資料驗證」指令,開啟「資料驗證」對話方塊。
步驟2: 點取「公式」欄位,輸入「=AND(EXACT(A2,pwd),E2>0,E2<0.1)」公式字串,如下圖所示。
步驟3: 點取「確定」鈕,完成設定。
若密碼正確時,輸入數值介於0~0.1之間不會出現錯誤訊,若輸入0~0.1以外數值,或是密碼不正確,輸入任何數值都會出現如下圖對話方塊通知輸入的值不正確。
範例3:強制大寫輸入
在資料有效性中也可以使用EXACT函數來確保在儲存格中輸入的字母全為大寫。例如,學校老師帳號是預設的格式,帶有數值和大寫字母,例如:KHVS07。
在儲存格B2中,已經使用下列公式應用了資料有效性:「=EXACT(A2,UPPER(A2))」。
如果輸入了任何小寫字母,都要出現錯誤警告。這雖然不會阻止老師帳號中的所有錯誤,但將確保英文使用了大寫字母。
步驟1: 點取「資料 > 資料驗證 > 資料驗證」指令,開啟「資料驗證」對話方塊。
步驟2: 點取「公式」欄位,輸入「=AND(EXACT(A2,pwd),E2>0,E2<0.1)」公式字串,如下圖所示。
步驟3: 點取「確定」鈕,完成設定。
若輸入帳號正確時,不會出現錯誤訊,若輸入密碼不正確或是正確但英文沒有變成大寫都會出現如下圖對話方塊通知輸入的值不正確。
範例4:查找列表中完全匹配項
比較一個儲存格和另一個儲存格,可能需要在清單中尋找完全匹配項目。如果某人在儲存格中輸入一個產品代碼,和你的產品清單中的代碼完全相同嗎?
在本例中,在儲存格區域A2:B5中有一列產品代碼清單,顧客可以通過在儲存格C2中輸入代碼訂購產品。
在儲存格D2中的公式使用EXACT函數檢查在儲存格C2中輸入的代碼,看其是否與產品代碼清單中的某個項目完全匹配。
D2儲存格輸入公式:「=OR(EXACT($B$2:$B$5,E2))」,會顯示FALSE字串,表示沒有完全匹配的記錄,這是由於該公式沒有以陣列公式輸入,故須按 Ctrl + Shift + Enter 鍵,將公式前後加上大括號「{=OR(EXACT($B$2:$B$5,E2))}」,這時會顯示TRUE字串,如下圖所示,表示有完全符合的記錄。
範例5:從欄範圍中提取完全匹配的名字
在查閱資料表中,EXACT函數可以區分AA1和Aa1,傳回與每個代碼對應的正確的產品名稱。其它函數,像VLOOKUP函數,將那些代碼看作相同的對待,並傳回表格中第一個代碼對應的產品名。
在本範例中,B2:B5儲存格區域中有一份產品清單,顧客能夠以儲存格D2中輸入其代碼來訂購產品。
在儲存格E2中的公式使用了3個函數– INDEX函數、MATCH函數和EXACT函數:
EXACT函數檢查在儲存格D2中輸入的代碼,看看產品代碼清單中是否有完全匹配項。
如果結果為TRUE,那麼MATCH函數傳回表的列號,在儲存格範圍的第7列找到了A756423。INDEX函數返回儲存格區域A2:A9的第7列中的值「吳二」。
該公式必須是陣列公式,所以輸入完後,須按CTRL + SHIFT + ENTER鍵,將E2儲存格中公式變為「{=INDEX($A$2:$A$5,MATCH(TRUE,EXACT($B$2:$B$5,D2),0))}」。
範例6:統計列表中的完全匹配項數
在查閱資料表中,EXACT函數可以區分A1和a1,並且傳回每個代碼對應的正確的數量。其它函數,像COUNTIF函數,將那些代碼視為相同的,傳回所有不相同的代碼的數量。
在範例中,儲存格區域A2:A15中有一欄項目列表,在C欄中是唯一值列表。
在D欄中的儲存格公式使用了2個函數 –SUMPRODUCT函數和EXACT函數:
EXACT函數檢查在C欄中輸入的項目,看在欄列表項目中是否有完全匹配項。
SUMPRODUCT函數基於結果為TRUE的數目傳回總數,D2儲存格公式為:「=SUMPRODUCT(--EXACT($A$2:$A$11,C2))」
【說明】
EXACT函數前面的兩個減號將TRUE和FALSE值轉換為1和0。
範例7:檢查儲存格中的每個字元
EXACT函數可以告訴兩個文字字串是否完全匹配,但是可能希望使用一種快速的方法來查看哪些字元是不相同的。在範例中,每個字串有6個字元,數值1至6被作為欄標題輸入。
在儲存格C2中的公式使用了3個函數 – MID函數(2個)和EXACT函數(1個):
MID函數基於公式中欄標題的數字從欄A或欄B中傳回特定的字元。例如,在上面儲存格C2中顯示的公式中,每個字串中的第一個字元被測試,因為儲存格C1中的數字是1。
EXACT函數是通過MID函數所提取的兩個字元來作比較。
所以C2儲存格的公式為:「=EXACT(MID($A2,C$1,1),MID($B2,C$1,1))」。
留言列表