假定表格中A列是輸入姓名的,現(xiàn)在A1單元格已經(jīng)有一個(gè)姓名了,我要從A2單元格往下輸入,要保證每次輸入不重復(fù),方法如下:
選中A2單元格,點(diǎn)擊數(shù)據(jù)菜單->有效性,設(shè)置標(biāo)簽里面,允許一欄選為“自定義”,公式為: =IF(ISBLANK(A2),TRUE,IF(ISERROR(VLOOKUP(A2,$A$1:B1,2,FALSE)),TRUE,FALSE)) 點(diǎn)擊確定,選中A2單元格,用鼠標(biāo)往下拖動(dòng)填充柄(填充柄:位于選定區(qū)域右下角的小黑方塊。將用鼠標(biāo)指向填充柄時(shí),鼠標(biāo)的指針更改為黑十字),填充完預(yù)定要輸入姓名的區(qū)域即可。 現(xiàn)在試一下,在A2單元格以下的A列輸入數(shù)據(jù)時(shí),只要與前面任一單元格的內(nèi)容一致,就會(huì)顯示輸入值非法的提示框,好了,任務(wù)完成。 好吧!把公式原理說一下,你就知道了。 上面的公式中,用填充柄進(jìn)行填充后,假如是第88行,其數(shù)據(jù)有效性的判斷公式相應(yīng)填充為: =IF(ISBLANK(A88),TRUE,IF(ISERROR(VLOOKUP(A88,$A$1:B87,2,FALSE)),TRUE,FALSE)) 再來分析上面的公式,首先是用最外層的IF函數(shù),判斷條件是ISBLANK(A88),作用是先判斷A88是否已填入數(shù)據(jù),現(xiàn)在,如果要在A88中填入數(shù)據(jù),哪ISBLANK函數(shù)為FALSE,IF轉(zhuǎn)向后面的“IF(ISERROR(VLOOKUP(A88,$A$1:B88,2,FALSE)),TRUE,FALSE)”部份執(zhí)行,這又是一個(gè)邏輯判斷,條件是“ISERROR(VLOOKUP(A88,$A$1:B87,2,FALSE))”,這是公式的核心內(nèi)容。首先來看VLOOKUP(A88,$A$1:B87,2,FALSE),這個(gè)函數(shù)的作用是從A1到B87的區(qū)域內(nèi),查找是否存在有與A88單元格的內(nèi)容相同的單元格,有兩種可能: 1、如果有的話(假定是A11),就返回B11單元格的內(nèi)容,這時(shí),ISERROR(B11)判斷為FALSE,(ISERROR作用是判斷是否為#N/A,如果是就返回TRUE,不是就返回FALSE),哪第二層IF函數(shù)返回值為FALSE,整個(gè)公式的值為FALSE,EXCEL的有效性判斷為非法值,就會(huì)出現(xiàn)提示。 2、如果沒有,“VLOOKUP(A88,$A$1:B87,2,FALSE)”就會(huì)返回一個(gè)錯(cuò)誤值為“#N/A”,此時(shí)ISERROR函數(shù)結(jié)果為TURE,哪第二層IF函數(shù)返回值為TRUE,整個(gè)公式返回值TRUE,EXCEL的有效性判斷為合法值,就可以輸入了。 這樣,C1295單元格的公式可設(shè)置為: =IF(ISBLANK(C1295),TRUE,IF(ISERROR(VLOOKUP(C1295,$C$1:D1294,2,FALSE)),TRUE,FALSE)) 注意,這里的$C$1:D1294區(qū)域是你電話號(hào)碼表上的姓名列區(qū)域(從開始到你輸入姓名上一行的內(nèi)容),如果姓名是從第五行開始的,哪就應(yīng)該改為$C$5:D1294。 |
|