|
Re: 一些实用的Excel实用技巧
11、几个好用的公式(5)
5、综合练习
讲了半天,如果没有一个酷一点的例子来说明,大家的印象可能不够深刻哈,好人做到底,这是我们上课的作业,可以说明狠多问题,有心学习的同学可以一起来做做看。
下面是我们希望实现的效果。这是一个出货记录表,表中的第二个Sheet存放员工信息,第三个Sheet存放产品信息,我们希望用户只能从下拉列表中选择员工编号,然后系统自动的在编号选择完以后显示员工姓名和所属地区;同样的,下拉列表包含了产品代码列表,选择一个产品以后,直接显示该产品的型号和单价等,最后,用户输入产品数量(大于等于1的数字),系统自动计算出它的总价。
利用我们原先讲过的"数据有效性",可以狠容易的给员工编号和产品代码指定下拉列表。记得,你可以把整个A列选中来指定A列中所有行的数据有效性,这样方便狠多。
至于产品数量,同样也是数据有效性问题。在有效性对话框中指定它为数字且必须大于1就可以了。注意一个好的输入提示和错误输入提示信息,可以使你做的这个表格显得更专业。
最后就是选了员工编号显示员工信息和选择产品编号显示产品信息的问题了。显然,它们都可以用VLOOKUP来实现,公式分别为:
姓名:VLOOKUP(A2,员工信息!$A$2:$D$11,2,FALSE)
地区:VLOOKUP(A2,员工信息!$A$2:$D$11,4,FALSE)
产品:VLOOKUP(D2,产品信息!$A$2:$D$7,2,FALSE)
型号:VLOOKUP(D2,产品信息!$A$2:$D$7,3,FALSE)
基本上这样就可以实现我们所要的,从下拉列表选择一个值,得到相应的具体信息这样一个功能了。
可是且慢,还有一个问题,大家想到了吗?
那就是当编号没有选择的时候,其余项会出现"#N/A"这样的显示,看起来狠难看,这显然不是我们可以接受的。
解决的方法是在VLOOKUP外嵌套一个IF语句,例如对于姓名,我们的公式改为:IF(A2="","",VLOOKUP(A2,员工信息!$A$2:$D$11,2,FALSE))
这样就一切OK啦,是不是狠厉害呀?:D
最后,假如你不希望自己做好的表格会被使用的人修改,你可以把指定单元格锁定。在上述例子中,可以先选中员工姓名、地区等需要系统自动计算的单元格,然后右键选择"格式化单元格"("Format Cell"),在对话框的最后一个Page"保护"(protection)中,可以选中"锁定"("locked")。这还没有完,再选择"工具 > 保护 > 保护工作表",可以看到一个对话框,你可以在那里选择你要保护的对象。这里我们选择"选择未锁定单元格"(select unlocked cell),你还可以指定一个解锁的密码,这样以后要解开单元格的锁定时,只有知道密码的人才有权限。
好了,现在看看你的表格,除了下拉列表和数量输入框,其它地方都是锁定的,用户只能从列表中选择员工和产品信息、输入数量,其余一切自动完成,而且别人也不知道你是如何实现的——棒不棒? |
|