室内设计培训
平面设计培训
部落窝教育
网站首页 >> Excel教程 >> 文章内容

Excel数据有效性设置灵活应用(一)

[日期:2016-10-14]   来源:IT部落窝  作者:IT部落窝   阅读:3757[字体: ]
内容提要:本文的Excel数据有效性设置教程分为上下篇,比较实用的行业运用案例分享给大家,希望对你了解excel数据有效性设置带来些帮助。

  数据有效性是强制要求输入者在对特定单元格输入数据时需要遵守特定的规则,以防止数据输错,比如强制要求身份证号为18位、手机号为11位等,否则给出提示性警告并要求重新输入。其实数据有效性不但能够起到强制要求的作用,还能够提供下拉箭头便捷输入。下边我们一起来进行探讨。

1  数据有效性界面

  先选中要设置数据有效性的单元格,在“数据”菜单中(以Excel2010版为例)找到“数据有效性”命令,我们可以看到它有4个标签:设置、输入信息、出错警告和输入法模式。其中“设置”是最重要的让数据有效性生效的内容,其余只是辅助,我们先把简单的、辅助标签内容介绍后,详细解说设置标签。
 
  输入信息标签,一目了然,不用过多解释:
 
 
excel数据有效性序列
 
 
  出错警告标签,样式中有三种类型,内容也一目了然,标题是指出错后给出的对话框的名称,错误信息是指出错后给出的主要提示内容,一般与数据性有效的设置内容有关,主要告诉输入者允许输入那些内容,给输入者指明方向:
 
 
excel数据有效性自定义
 
 
  输入法模式是指当选中该单元格时,输入法是开启的还是关闭的。

2  数据有效性设置
 
2.1  简单设置
 
  如果未设置,则允许任何值。其中整数、小数、日期、时间和文本长度都有最大值和最小值,只允许在此数据范围内输入,易于理解,也没什么文章好做,最有意思的莫过于序列和自定义(默认勾选忽略空值)。
 
  序列被勾选上后,会在忽略空值下方出现一个提供下拉箭头并默认勾选上,然后在来源里给了一个输入或单元格区域选择框,对于输入内容固定且种类不多的情况下,既可以提高输入效率,又可以防止非法或另类数据,提高准确率。
 
  比如对需要输入性别的单元格可以设置数据有效性并选择序列,在来源里输入“男,女”,如下图:
 
 
excel数据有效性设置
 
 
  需要注意的是每项之间必须是英文状态的逗号,否则会被认为是一个整体。或者点击来源框内最右侧的区域选择按钮,拖选表格中已有的单元格将其中的值作为输入内容。下图就是该单元格被设置有效性后的简单效果:
 
 
Excel数据有效性设置灵活应用(一)
 
 
  然后就可以点击选择输入了,是不是很方便呢?最后把设置好有效性的这个空单元格向下复制给同一列,该列的有效性就被设好了(当然也可以先选定区域再设定)。

2.2 使用公式进行高级设置
 
  如果你对公式有一定的了解,可以选择自定义,使用公式设定更为复杂的数据有效性。
 
  例1:设定C列自C8开始,要求其内容为“CA0000-000”格式的数据,且有以下要求:
 
  1、必须以“CA、CB、CX、CY、CR、GC、GD”中的任一种组合开头,不允许有其他值出现;
  2、字头两个字母必须为大写;
  3、总长度为10位;
  4、其中第7位为“-”作为分隔,“-”与字母间是数字,“-”后还是数字。
  这个要求看起来有点变态啊!但这是我们衬衫类产品正确转化为17位商品条码的有力保障,如果不强行设定,谁知道输入者会不小心输成什么东西,也就更不知道生成的17位条码是什么东西了。
  在起始的C8中进行数据有效性设定,选择自定义,然后在公式输入框里输入以下公式:
=AND(LEN(C8)=10,MOD(SEARCH(LEFT(C8,2),"CACBCXCYCRGCGD"),2)=1,CODE(LEFT(C8,1))>66,CODE(LEFT(C8,1))<72,CODE(MID(C8,2,1))>66,CODE(MID(C8,2,1))<90, MID(C8,7,1)="-" ,ISNUMBER(VALUE(MID(C8,3,4))),ISNUMBER(VALUE(RIGHT(C8,3))),ISNUMBER(SEARCH(" ",C8))=FALSE)
 
  并在出错警告的错误信息里输入以下内容:
 
  只能输入“CA0000-000”格式数据,总长度10位、字头为大写“CA、CB、CX、CY、CR、GC、GD”、字头后为4位数字、“-”做间隔符、末3位为数字、不允许有空格!
 
  错误信息不用再解释,详细解释一下公式含义及写法:
 
  上述4条(实际细分下来是6条)要求同时满足,故在公式标志符“=”后立即输入and,表示要求括号内的条件同时成立。
 
  ☆ LEN(C8)=10,表示C8有10个长度的字符;
 
  ☆ MOD(SEARCH(LEFT(C8,2),"CACBCXCYCRGCGD"),2)=1
 
  其中LEFT(C8,2)表示C8左取两位,SEARCH(LEFT(C8,2),"CACBCXCYCRGCGD")表示C8左取两位后必须在"CACBCXCYCRGCGD"字符串里能找到(这个字符串根据自己需要设定),比如“CB”在这个字符串里能找到且是从第3位开始找到的。随之我们就会发现我们设定的允许值都是在奇数位要能找到的,如果偶数位出现的就不是我们想要的结果(如“AC、BC……”),所以我们再在外边套一层求余函数,以2作为除数,要求求余结果为1(偶数以2作为除数求余,结果为0),就能保证设置正确。
 
  ☆ 但经过测试我们发现上述限定无法制约小写,也就是“ca”等也被允许,在这里我们利用大小定字母在字符集中的值不同来对其进行限定。找一任意空白单元格,输入“=code("A")回车后我们会得到65,这就是“A”的code值,同样我们测试可得“Z”的code值为90,“a”的code值为97。
 
     因此我们分别设定左取C8的第1位字母必须大于64,但进一步观察我们发现第1位字母从“C”开始,也就是大于66即可;而以“G”(code值71)结束,也就是小于72。同理可得,第2位字母(MID(C8,2,1))的code值大于66,小于90,于是就得到了对字母大写的限定公式,即同时满足:CODE(LEFT(C8,1))>66,CODE(LEFT(C8,1))<72,CODE(MID(C8,2,1))>66,CODE(MID(C8,2,1))<90
 
  ☆ MID(C8,7,1)="-",表示要求第7位是“-”
 
  ☆ ISNUMBER(VALUE(MID(C8,3,4)))表示将C8的值从第3位开始截取4位转换成数值后能变成数字,isnumber是对数据判定是否为数字的函数,结果为true或false。
 
  ☆ ISNUMBER(VALUE(RIGHT(C8,3))),同理,表示右取C8的3位转换成数值后也能变成数字。
 
  ☆ ISNUMBER(SEARCH(" ",C8))=FALSE,表示在C8 里搜索空格(两个英文双引号间有一个英文状态下的空格)的结果为false,即没有空格。
 
  然后把以上条件全部组合在and里对C8单元格进行数据有效性设定就OK了,然后复制到同列。
 
  这个时候,如果输入者输入的数据不满足上述条件的任一条,都会被禁止输入并给出错误警告。 
 
IT部落窝PS,CDR,213班 分享到: QQ空间 新浪微博 腾讯微博 人人网
photoshop教程
Photoshop教程
平面设计教程
Photoshop教程