|
三:限制指定位数只能是数字
与前两例不同,本例可以自定义从某位数开始某位数结束限制为数字。
先看实例(见图6),起始位和结束位单元格可以随意定义,只要结束位不小于起始位即可。目的是设置完后手机型号单元格的指定位数只能是阿拉伯数字,否则阻止输入。
 图6 步骤1.仍然开启迭代计算
步骤2.手机型号下面单元格做为辅助单元格,输入公式: =OR(ISERROR(FIND(MID(B6,ROW(INDIRECT(C6&":"&D6)),1),"0123456789")))=FALSE
公式含义:利用数组运算查找指定字符是否位于“0123456789”,有一个在范围之外则返回逻辑值FALSE.
步骤3.开启菜单“数据”|“有效性”|“有效性条件”,在“允许”处选择“自定义”;在公式处输入=B7=TRUE;出错警告处之样式选择停止,再输入提示信息:“你输入的数据指定位数不是数字,请重新输入”。
测试:在单元格输入“诺基亚-831”,系统立即阻止(见图7)。  图7 四:限制用户有输入字母
在单元格中输入英文单词时,也可以用数据有效性进行限制。
步骤1.仍然开启迭代计算
步骤2.本例限制目标单元格为D3,以D4单元格为辅助,输入公式: =COUNT(MATCH(CODE(UPPER(MID(D3,ROW (INDIRECT("1:"&LEN(D3))),1))),ROW(INDIRECT("65:90")),))=LEN(D3),见图8。
公式含义:利用数组运算逐一对单元格字符转换成ANSII字符集之数字代码,并计算其个数,再与单元格字符长度进行比较,若相同则表示符合要求。  图8 步骤3.开启菜单“数据”|“有效性”|“条件”,在“允许”处选择“自定义”,在公式窗口输入=D4=TRUE,关添加阻止信息。
测试:在D3输入“l0ve”(次字符为数字0),系统立即阻止输入。
五:限制输入电话号码和手机号
在一个电话簿中,可以存放电话号码和手机号码,格式分别为0756-1234567和13512345678.利用数据有效性仍然可以有效性的进行检测,这两种格式以外的数据阻止输入。先看看工作表数据(见图9)。  图9 步骤1.选中B2:B11,将之单元格格式设为“文本”。
步骤2.开启菜单“数据”|“有效性”|“有效性条件”,在“允许”处选择“自定义”;在公式处输入:=OR((LEN(B2)=11)*ISNUMBER(--B2)*LEFT(B2,2)=13,(LEN(B2)=12)*(MID(B2,5,1)="-"))
公式含义:(LEN(B2)=11)*ISNUMBER(--B2)*LEFT(B2,2)=13用于限制手机号码:(LEN(B2)=11)表示必须是11位,ISNUMBER(--B2)表示必须是数字,LEFT(B2,2)表示以13开头(可以自行修改);(LEN(B2)=12)*(MID (B2,5,1)="-")用于限制电话号码必须是12位,且第5位是“-”。
步骤3.设置出错时之警告信息:“你输入的不是正确的手机或者电话号码,请重新输入!”。
测试:在区域任意单元格输入10位数字1351234567试试,立即被系统阻止(见10)。  图10 |