Chinaunix首页 | 论坛 | 博客
  • 博客访问: 370111
  • 博文数量: 132
  • 博客积分: 3066
  • 博客等级: 中校
  • 技术积分: 781
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-14 16:19
文章分类

全部博文(132)

文章存档

2012年(1)

2010年(50)

2009年(81)

我的朋友

分类: WINDOWS

2009-05-25 14:37:01

在Excel表中多级联动还是需要点技巧的,主要还是接触Excel表太少,毕竟不是微软办公高手,呵呵,在网上发现有人写的3级以上联动需要宏,可是,宏在很多时候会被误杀掉,而自己刚好又要用到3级联动,所以就自己研究了下.发现并不如想象中那么麻烦,没有使用宏,只是使用了几个简单的函数达到目的,想到可能有不少人会有这方面的需求,就写在自己的Blog上了,欢迎大家共同探讨.

例子见附件:

首先,需要创建2个工作表,一个用来显示最终的结果,一个用来存放原始数据,当然,在我的例子中我用了3个,纯属无聊而已.先看第1个表格

  A B C D E
1 配件名称 品牌 型号参数 价格  
2 显示器 AOC 177Si 1250.00  

这个只是简单的表,在附件中的Excel有更详细的.我列出这个表,主要是想讲一下我的思路.品牌,型号参数是个可以选择的项目,价格则根据不同的型号变动.就是说,根据配件名称选择品牌,根据品牌选择型号参数,由型号参数来确定价格.那么,在确定基本的思路后,就要开始考虑如何定义数据结构了.请看下面的表格.

  A B C D E
1 great wall 美格 BenQ AOC  
2 M92 B71 T705 177Si  
3 M157   FP71+    
4 M172   FP92W    

F G
B71 1266.00
M92 1450.00
M157 1199.00
M172 1369.00
T705 1280.00
FP71+ 1270.00
FP92w 1499.00
177Si 1250.00

这2个表分别是品牌与型号参数,型号参数与价格.由于没有使用宏,如果把这2个表合在一起,分开会比较麻烦,至少我还没有想到什么解决办法.数据结构确定了,就开始做多级联动.首先做第一个下拉列表,就是显示器类别.选中表2中A1到D1,在名称框里输入"显示器"后回车,然后在表1里选中B2,然后点数据->有效性->设置->允许里选"序列",在"来源"里输入"=显示器",这样,第一个下拉列表就制作完成了,点一下下拉箭头,可以看见Great Wall,美格等的选择项,现在制作第2个下拉列表,就是型号参数.选中表2中A1到D4区域,然后点插入->名称->指定,选中"首行", 把其余的选择去掉,只保留一个,然后点确定,然后在表1中选中C2,点数据->有效性->设置->允许里选"序列",在"来源"里输入"=indirect(b $2)".Ok,现在可以保存一下,看一下成果了,是不是表1里B2,C2都有下拉箭头了?很好,这样就实现了2级联动了, 下面就开始实现3级联动.稍微复杂了一点,因为毕竟使用了函数嵌套.选中表1里的D2,然后在函数输入栏里输入"=OFFSET(表2!F  $1,MATCH(C2,表2!F $1:F $80,0)-1,1)".看起来稍微有点点复杂,其实很简单.首先先使用Match函数寻找表3里符合表 1中C2值的位置并返回当前值.然后用offset做一下偏移就好了.为什么?因为表3里型号参数旁边不就是价格嘛?是不是很简单?可能刚开始理解起来有些麻烦,不过,当你真正理解起来,你就发现原来做一个多级联动这么简单啊!!呵呵,还是看下我做的例子吧,1个4级联动,专门用来配电脑的,当然里头还有点小问题,就是AMD和Intel的CPU不兼容啊,如果把Intel的包含进来该咋写呢?当然,这和多级联动没啥关系,只是另外一个需要动脑筋解决的问题罢了

阅读(1855) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~