作者: andysky
报表录入人员每天面对大量数据录入,难保不出现一次疏忽。不管数据重要性如何,报表错误总会给工作带来负面影响。 那么,除了录入人员自身输入时目测外还有更简洁高效之法么? 答案是肯定的。WPS表格的“数据有效性”功能可以为您提供便利,有效阻止无效输入,从而提升数据的准确性和制表速度。 “数据有效性”功能众多,限于篇幅,专为您讲解以下内容,大家可以举一反三,解决更多类似问题。
1.控制成绩表只能输入数值
2.限制手机号只能输入阿拉拍数字
3.限制指定位数只能是数字
4.限制用户有输入字母
5.限制输入电话号码和手机
6.根据前单元格字符决定是否输入
7.控制输入1---10000之间的质数
注:为了方便您学习,请先下载本文中所需的ET文档。
一:控制成绩表只能输入数值
大家知道,学生成绩是用数字表示的,且一般在0-100之间。那么只要掌握这个规律进对之进行相应的限制则成绩录入时则可防范出错(例如输入小数点变成了逗号不利用汇总或者数据超过100分等等)。
步骤1.先看一个简易的成绩表(见图1),先选中成绩区B2:B11,打开菜单“数据”|“有效性”。
图1 成绩表
步骤2.在设置“数据有效性”|“条件”|“允许”处选择“自定义”;在公式处输入=ISNUMBER(B2)*AND(B2<=100,B2>=0)(见图2)。
公式含义:ISNUMBER(B2)表示必须是数字,AND(B2<=100,B2>=0)表示数据必须在0-100之间;两个条件中用*号连接表示必须同时满足两个条件。
图2;数据有效性
步骤3.在出错警告选项卡之样式选择“停止”,“错误信息”处输入“ 你输入了非数字或者不在0--100范围中,请重新输入。”,点确定。
测试:在B2:B11区域输入大于100或者小于0或者“ABC”等等数据看,系统将弹出提示并阻止您的输入。从而确保成绩录入的范围正确性(见图3)。
图3 错误提示
二:限制手机号只能输入阿拉拍数字
某单元格用于存放手机号码,为了防范输入错误,同样可以利用数据有效性进行相应的约束。手机号码的特点是:每一个字符都是阿拉伯数字,不包括小数点,这与成绩分数不同;位数为11位。对手机号每个字符都进行检测,需要用到数组运算,而WPS2005表格的数据有效性公式中不支持数组运算,所以不能像前例一样直接在有效性公式窗口输入公式。而是借助辅助单元格,同时打开迭代计算来达到目的。
步骤1.打开菜单“工具”|“选项”|“重新计算”,按以下方式设置(见图4)。
图4 输入设置
步骤2.本例手机号码存于C8单元格,则将D8做为辅助单元格格,在其中输入公式: =AND(NOT(ISERROR(FIND(MID(C8,ROW(INDIRECT("1:"&LEN(C8))),1),"0123456789"))),LEN(C8)=11)
公式含义: NOT(ISERROR(FIND(MID(C8,ROW(INDIRECT("1:"&LEN(C8))),1),"0123456789")))表示每一位字符必须是阿拉伯数字;LEN(C8)=11表示必须为11位。当然也可自己再加条件,例如字符“13”开始之类。
步骤3.开启菜单“数据”|“有效性”|“有效性条件”,在“允许”处选择“自定义”;在公式处输入“=D8=TRUE”,并在出错警告选项卡输入信息“你输入的不是阿拉伯数字或者不是11位,请重新输入!”
测试:在单元格中输入一个错误的号码“I3512345566”,已被系统阻止(见图5)。
图5 错误提示
三:限制指定位数只能是数字
与前两例不同,本例可以自定义从某位数开始某位数结束限制为数字。
先看实例(见图6),起始位和结束位单元格可以随意定义,只要结束位不小于起始位即可。目的是设置完后手机型号单元格的指定位数只能是阿拉伯数字,否则阻止输入。
图6 实例
步骤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 单词练习
测试:在D3输入“l0ve”(次字符为数字0),系统立即阻止输入。
在一个电话簿中,可以存放电话号码和手机号码,格式分别为0756-1234567和13512345678.利用数据有效性仍然可以有效性的进行检测,这两种格式以外的数据阻止输入。先看看工作表数据(见图9)。
图9 工作表数据
步骤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 系统阻止
六:根据前单元格字符决定是否输入
说明:为了表示对少数民族学生的优待,根据学校提供的学生学习期间操行分进行高考加分.范围在1到20分之间,汉族学生不能加分。用数据有效性对此类事件也可以进行有效性检测。
先看看单元格数据(见图11)。
图11 数据表格
步骤2.在公式处输入=(C2<>"汉族")*(D2>=1)*(D2<=20)。
公式含义:前单元格非汉族且大于等于1、小于等于20.
步骤3.在出错警告处输入信息“该生非少数民族或者加分不在1-20分以内.请重新输入。”
测试:在汉族学生后面输入任意字符或者在其它民族学生之加分单元格格输入21,系统立即阻止输入(见图12)。
图12 系统阻止
学校常常需要计算质数(质数即只能被除1和自身整除之数字)。
本例则限制单元格只能输入1---10000之间之数字且必须是质数。
步骤1.本例中限制对象为A2,选中单元格A2(见图13)。
图13 输入表格
步骤2.打开菜单“数据”|“有效性”|“有交性条件”,选择自定义。在公式处输入: =AND(B2<>1,B2<=10000,OR(B2<4,PRODUCT(MOD(B2,ROW(INDIRECT("2:"&INT(B2^0.5)))))))
步骤3.在出错警告处样在式选择停止,输入信息:“您输入的不是质数或者超过10000,请重新输入!”
测试:在B2输入1、4、10001等等数据时,系统立即阻止输入。
结语:数据有效性有一个强大的工具,将它配合函数公式能产生很大的作用,除上述数据控制外,还具有以下功能:
限制指定数值大小的整数;
限制指定字符长度的整数;
限制指定大小的小数;
产生下拉菜单;
限制指定范围的日期和时间;
限制指定长度字符;
限制输入指定姓氏之人名;
限制输入指定省下所属市名;
达成选择时提示;等等等等。
其中最大功能在于自定义允许条件为自定义,它可以配合函数产生无穷的变化,达成您各种需求。数据有效性也有它自身限制,使用时需要注意。即它只自限制手动输入字符,无法防范粘贴数据。所以对需要限制输入字符之单元格只能手动输入,否则会删除有效性信息。