|
7#
楼主 |
发表于 2007-8-13 20:52:39
|
只看该作者
二级以上有效性该如何设置呢?
这里需要用到以下几项:
1、定义单元格名称:插入-名称-定义
2、OFFSET函数:OFFSET(参照单元格,向下行数,向右列数,显示行数,显示列数)
3、MATCH函数:MATCH(查找值,被查值所在区域,参数)
4、COUNTA函数:COUNTA(区域)
5、INDIRECT函数:INDIRECT(单元格,参数)
以一楼附件(更新过的那个)作为例子,内容在SHEET1中,第一行是一级有效性选项,第二行开始每一列是这一列第一行的二级有效性选项,且行和列的文字都可以随意增减。
先定义以下两个单元格名称:
一级有效性名称定义为TT1(可自选);公式是:=OFFSET(Sheet1!$A$1,,,1,COUNTA(Sheet1!$11))(在单元格内输入时需要按组合键结束)
二级有效性名称定义为TT2(可自选);公式是:=OFFSET(Sheet1!$A$1,1,MATCH($C$5,Sheet1!$11,0)-1,COUNTA(INDIRECT("SHEET1!C"&MATCH($C$5,Sheet1!$11,0),0))-1,1)(在单元格内输入时需要按组合键结束)
最后设置数据有效性:
一级有效性选择单元格有效性序列来源设置为=TT1
二级有效性选择单元格有效性序列来源设置为=TT2
结果就是,当一级单元格里选的是哪一个,二级单元格里的有效性选项只对应那一个,而不会出现其他;更很需要的是,数据源一旦更新,下拉列框选项也跟着更新。 |
|