设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 22342|回复: 86
打印 上一主题 下一主题

[基础应用] 二级有效性——与大家共享

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2007-7-30 21:27:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
欢迎拍砖
游客,如果您要查看本帖隐藏内容请回复
更新过了,修正了之前二级数量只与A列相关的问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-8-3 22:11:08 | 只看该作者
不错,不过有点缺陷,如果各列行数不一样,结果错误,可修改名称TT2:
=OFFSET(Sheet1!A2,,MATCH(C5,Sheet1!1:1,)-1,COUNTA(OFFSET(Sheet1!A2,,MATCH(C5,Sheet1!1:1,)-1,65535)))
或干脆不判断行数:
=INDEX(Sheet1!$265536,,MATCH($C$5,Sheet1!$11,))

点击这里给我发消息

3#
 楼主| 发表于 2007-8-4 09:47:17 | 只看该作者
谢楼上的,第一次做的时候是有这个问题,后来我修正过了,可能你下错了,吼吼,不过楼上的思路也相当好,学习ING。

点击这里给我发消息

4#
 楼主| 发表于 2007-8-4 09:53:56 | 只看该作者
为什么改了版以后,修改前的东东总也删不掉呢,第一次发的附件有错误呀,第二次发的才是正确的,所以才要删掉,晕了
5#
发表于 2007-8-13 20:43:46 | 只看该作者
我想看看楼主怎么做到的,最近也在学这个
6#
发表于 2007-8-13 20:46:08 | 只看该作者
没有很看明白地说。我比较菜

点击这里给我发消息

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
结果就是,当一级单元格里选的是哪一个,二级单元格里的有效性选项只对应那一个,而不会出现其他;更很需要的是,数据源一旦更新,下拉列框选项也跟着更新。

点击这里给我发消息

8#
发表于 2007-8-13 21:01:25 | 只看该作者
不错,学到不少

点击这里给我发消息

9#
 楼主| 发表于 2007-8-13 21:04:42 | 只看该作者
晕,所有的:加$都变成了

点击这里给我发消息

10#
发表于 2007-8-16 16:32:57 | 只看该作者
原帖由 pureshadow 于 2007-8-13 21:04 发表
晕,所有的:加$都变成了

测试$
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 15:40 , Processed in 0.083596 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表