技巧1 在单元格创建下拉列表有许多新手在EXCEL中第一次见到下图所示的下拉列表时,都以为是程序做的,当他们知道图中下拉列表只是一个普通的利用数据有效性完成的EXCEL技巧时,他们会觉得很惊奇。
那么,现在我们一起学习一下,怎么利用数据有效性来做个下拉列表吧:第一步在一个连续的单元格区域输入列表中的项目,如图中E7:E11有个商品名称的表第二步选中A2单元格,单击“菜单”——“数据”——“有效性”,在“数据有效性”对话框的"设置"选项卡中,在“允许”下拉列表中选择“序列”项.第三步在"来源"框中输入“=$E$8:$E$11”(或输入“=”号后,用鼠标选中E8:E11)第四步勾选"忽略空值"与"提供下拉箭头"复选框,如图所示第五步单击"确定"按钮,关闭"数据有效性"对话框. 这样,就能实现第一张图所示的效果了。
如果列表的内容较少,或者不方便在工作表中输入列表项目,也可以省略上述的第一步,然后将第三步的操作改为:直接在"来源"框中输入列表内容,项目之间以半角的逗号分隔.如图所示在一般情况下,数据的有效性中的序列来源,只能引用当前工作表中的单元格区域。
如果希望能够引用其他工作表中的单元格区域,则必须先为单元格区域定义名称,然后在"来源"框中输入名称.例如,将另一张工作表中的A2:A10区域,名称定义为“SPMC”,然后在“数据有效性”的“来源”框中输入“=SPMC”。
技巧二:另类的批注当我们需要对表格中的项目进行特别说明时,常常会使用EXCEL的批注功能。
给单元格做批注的方法,这里不多浪费时间。
而给大家介绍一下另类批注:使用批注多了,我们会发现EXCEL的批注也有不足之处:一、批注框的大小尺寸会受到单元格行高变化的影响;二、批注框的默认情况下,是只显示标识符。
必须把光标悬停在单元格的上方批注内容才会显示出来,否则即使当单元格处于活动状态时,它也不会显示;三、是在上面2种情况的共同作用下,加上拆分(冻结)窗口下的插入、拖曳等工作表操作,会导致批注的位置远离原来的单元格,而被主人遗忘,并随着主人对单元格的复制或格式刷操作而被大量复制,这也是造成文件增肥的主要原因之一。
我曾经为一个会员给他的文件减肥时,从表里找出3500多个远离母单元格的批注弃儿,最终我通过删除这些个“批注弃儿”,帮那个会员给文件容量缩减了2/3之多。
言归正传,说说数据有效性利用数据有效性功能,我们可以实现另类的批注效果,克服以上不足。
第一步:选定单元格,如C1。
第二步:单击菜单"数据"-"有效性",在"数据有效性"对话框的"输入信息"选项卡中,勾选"选定单元格时显示输入信息"复选框,并在"标题"和"输入信息"文本框中输入相应内容.如图所示第三步:单击"确定"按钮,关闭"数据有效性"对话框.设置完毕后,当此单元格处于活动状态时,就会显示刚才输入的内容,效果如图所示用鼠标左键按住上图中的提示框,可以将它移动到工作表中的任何位置.更重要的是数据有效性不管你对多少单元格设置,设置的内容有多少变化,它都只会产生一个提示框。
只是选中不同的设置的单元格,显示不同的内容,不会如批注一样产生大量的对象增加文件容量。
当然数据有效性做的批注也有它的缺点,格式单调,输入的字符有限,也欠美观性等等。
技巧三结合函数完成可切换的动态下拉列表在通常情况下,当用户使用数据有效性时,只能处理一组数据来源。
而在某些场合中,数据来源不止一组,如果能有某种方法让下拉列表根据给定的条件来展现就好了。
现在让函数帮助数据有效性完成这可切换的动态下拉列表吧:如图所示,E1:G7 有3列分别为“英文”、“数字”、“中文”的3列字段现在要根据A1单元格的值,让A3单元格的下拉列表分别展现不同的下拉列表第一步:选定A3单元格,单击菜单“插入”——“名称”——“定义”,在“定义名称”对话框中如图所示,写入名称“SPMC”,引用位置输入公式“=CHOOSE(MATCH($A$1,$E$1:$G$1,),$E$2:$E$7,$F$2:$F$5,$G$2:$G$4)”,单击“确定”。
第二步:选定A3单元格,单击菜单“数据”——“有效性”,在“数据有效性”对话框的“设置”选项卡中,在“允许”下拉列表框中选择“序列”;第三步:在“来源”框中输入:“=SPMC”;第四步:勾选“忽略空值”与“提供下拉箭头”复选框,如图所示,单击“确定”按钮。
现在当用户在A1单元格中分别输入“英文”、“数字”、“中文”时,A3的下拉列表框中会出现不同的展现不同的下拉列表,分别对应不同的数据从本实例可以看出,当设置数据有效性时,序列来源不仅可以指定一个单元格区域.使用名称来引用单元格区域,还可以使用公式来完成更复杂的任务,上述公式利用了CHOOSE函数和MATCH 函数,根据A1单元格的值来动态引用数据源。
此外还有许多函数可以和数据有效性结合使用,这里就不一一细述了。
技巧四、动态的数据有效性在日常工作中,数据有效性的数据源往往是不断增加的内容的单元格区域。
就希望在数据有效性中设置的来源能自动同步增加这些新补充的内容,需要动态的数据有效性如图,要在单元格A2建立动态的下拉列表,让其下拉数据根据C列的增加而增加建立动态的数据有效性下拉列表有两种方法:1、列表法第一步:选中C1单元格,“菜单”——“数据”——“列表”——“创建列表”(或选中C1单元格,CTRL+L),进入创建列表窗,查看区域是否正确,勾选列表有标题后,按确定。
列表创建完成。
第二步,选中列表区域,在名称框输入“SPMC”,(或选中区域,菜单——插入——名称——定义,在定义名称框里输入名称名“SPMC”),完成给列表定义名称的步骤。
而后重复本贴技巧三的第二、三、四步。
2、函数法方法如同本贴技巧三的操作,不同是函数的公式不同,名称SMPC,引用位置输入公式是“=OFFSET($C$1,,,COUNTA($C:$C))”事实上,动态引用数据源的诀窍就是在数据有效性的来源设置中使用动态名称,有动态名称完成自动适应内容增长的各种变化。
北觉得列表法建立的动态数据源,简便易学,建表者不需要有函数基础。
但只能增加数据源,如果数据减少了,就会在下拉列表里增加很多空项目。
而函数法建立的动态数据源,基本随内容的增减而增减,不会因数据删减了,就增加空项目。
但建表者需要有一定的函数功力。
技巧五、限定录入数据必须符合特定条件在许多场合中,为规范用户的录入,保证数据的严谨和可读性,需要限定录入数据必须符合特定条件,此时就又需要用到数据有效性了。
如果数据的限定比较简单,比如:必须是某个区间的整数或小数;必须是某个时间段等,可以在"数据有效性"对话框中"设置"选项卡里面通过选择不同的有效性允许条件,并配合相应的参数来实现、但对于数据特征较为复杂的,就必须使用"自定义"条件,通过编写公式来实现例如,我们经常碰到人员录入,就需要录入身份证号,大家都知道我国的身份证号分老版15位,新版18位两种,另两个人的身份证号是不可能发生重复的。
这就需要我们在设计表格时把这样特定限定条件放进去,避免这样明显的录入差错。
我们现在一起来做个限定A2:A100区域的身份证不重复录入的数据有效性吧第一步:选中A2:A100区域。
第二步:单击菜单"数据"-"有效性",在"数据有效性"对话框的"设置"选项卡中,在允许下拉列表框中选择"自定义"项。
第三步:在"公式"框中输入:=(SUMPRODUCT(--(A$1:A2=A2))=1)*(OR(LEN(A2)=15,LEN(A2)=18))第四步:勾选"忽略空值"复选框,单击"确定"按钮,关闭"数据有效性"对话框。
来现在,我们试试,输入正常的不重复身份证号,是否能正常录入?再分别:输入重复身份证号;位数不是15或18位的身份证号,是否会象下图所示一样被EXCEL 拒绝?注:在此要提醒大家,利用数据有效性来限定录入数据必须符合特定条件,是一种事前控制,它只对将要录入的数据起作用。
如果单元格在设置数据有效性以前就录入了数据,或是批量复制的数据,则不会受到数据有效性的检查。
此时,在设计表格时就需要配合条件格式功能,让条件格式帮你做后期检查提醒工作。
技巧六、杜绝负数库存在一般情况下,用户在处理销售出库时需要依据库存余额来确定最大出库量,以避免产生出库数量大于库存数量,出现负数库存的后果。
因此,在大多数的企业管理系统中,开具出库单时,填写的数量都会被限制为必须小于等于库存量。
如果用户用EXCEL来管理库存与出入库业务,也可以利用数据有效性的特性,轻松实现这样的控制。
以如图所示的工作薄中,有两张工作表,库存表记录着所有产品的库存余额,出库表用来填写每次的实际出库数量,(说明一下,这个表,只是我随手打的表,并非实际表样,仅为说下面我们针对销售表的F3:F7单元格设置数据有效性,实现禁止输入大于库存数量的实际出库数量的效果。
第一步:将"库存"工作表中的A3:B7定义名称为"KC"。
第二步:在"出库"工作表中,选定区域F3:F7单元格.第三步:单击菜单"数据"-"有效性",在"数据有效性"对话框的"设置"选项卡中,在"允许"下拉列表框中选择"自定义"项。
第四步:在"公式"框中输入:=F3<=VLOOKUP(D3,KC,2,0)第五步:勾选"忽略空值"复选框,单击"确定"按钮,关闭"数据有效性"对话框。
如图,我在实际出库中输入了超过库存量的出库量,给EXCEL拒绝。
说明一下,以上方法只适用于进出发生少、品种少的企业。
真正的企业用数据有效性是根本负担不了大数据量的。
常常看到有人希望用纯函数加技巧,来处理库存帐务工作。
个人觉得这个不很现实,库存帐还是交给VBA吧。
这里用库存帐举例,只是说明一下,数据有效性可以这么用而已。