ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 45958|回复: 69

[原创]动态不重复数据有效性

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-2-3 11:01 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

通常一提到不重复数据有效性的设置问题,大家首先会想到利用函数配合定义名称来实现,但要做到动态不重复数据有效性设置,需要更加复杂的函数配合定义名称并添加辅助列来实现,或者利用列表功能配合函数、定义名称、添加辅助列来完成。

下面向大家介绍一种超级简单的方法来设置动态不重复数据有效性,不需要借助函数来完成。

 

dVLAiJvg.rar (6.95 KB, 下载次数: 2943)

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-3 11:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

首先将附件“动态不重复数据有效性.XLS”下载到D盘根目录下。

参照如下步骤来完成:

步骤1    双击文件动态不重复数据有效性,单击有效性设置工作表标签。

步骤2    单击工具栏“数据”→“导入外部数据”→“新建数据库查询”,选择“Excel Files*”。

注意:去掉“使用查询向导”创建/编辑查询(U)复选框的勾选。如 11所示:

 
                 
 11 选择数据源

 步骤3    单击“确定”按钮,选择文件动态不重复数据有效性所在的路径。如12所示:

                         12  选择文件所在路径



[此贴子已经被作者于2008-2-3 11:10:32编辑过]
1PFSlScE.jpg
D22AZxkE.jpg
3Xu4PdKP.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-3 11:02 | 显示全部楼层

步骤4    单击“确定”按钮,在出现的“添加表”对话框中双击“数据源$”,向Microsoft Query添加查询表,如13所示:

 
                   
 13 Microsoft Query添加查询表

单击“关闭”按钮,关闭对话框。

步骤5    双击已添加表中的“工单号”字段,向Microsoft Query查询中添加数据,如14所示:

 

                         14 添加数据

步骤6    单击“视图”→“编辑属性”,出现“查询属性”对话框,如 15所示:

        
                       
  15 编辑查询属性

[此贴子已经被作者于2008-2-3 11:17:34编辑过]
JN0fQZB3.jpg
VIsvB1uI.jpg
QGSZI3QN.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-3 11:03 | 显示全部楼层

步骤7    勾选“不选不重复记录”的复选框,单击确定按钮。

步骤8    单击Microsoft Query菜单“文件”→“将数据返回Microsoft Office Excel”,出现“导入数据”对话框,如16所示:

 
                     图 16 导入数据

  
步骤9    选择数据的位置H1单元格,单击“属性”,出现“外部数据区域属性”对话框,勾选“打开工作簿时,自动刷新”复选框,去掉“包含字段名”的复选,如 17所示:

 

                    图  17  设置外部区域属性

步骤10  单击“确定”按钮,返回“导入数据”对话框,再次单击“确定”按钮,不重复的数据将被导入到H列中,如 18所示:

 
                   图 1‑8 导入不重复的数据

[此贴子已经被作者于2008-2-3 11:24:17编辑过]
klq6kpFM.jpg
6RzR8KGB.jpg
Na5fM19O.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-3 11:18 | 显示全部楼层

步骤11   选中“有效性设置”工作表的A1:A30单元格,单击菜单“数据”→“有效性”,有效性条件“允许”选择“序列”,“来源”输入“=查询来自_Excel_Files”(导入外部的数据自动生成的名称),如 19所示:

 


                             19 设置数据有效性

单击“确定”按钮完成设置。

如果原始数据发生变化,只需右击“有效性设置”工作表的H列数据→在弹出的对话框中单击“刷新数据”,变化后的数据将会出现在数据有效性的下拉列表中。

[此贴子已经被作者于2008-2-3 11:28:14编辑过]
NBjSeAzB.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-3 11:25 | 显示全部楼层

WORD文档:

4bHRWVgy.rar (3.59 KB, 下载次数: 521)


[此贴子已经被作者于2008-2-3 11:40:41编辑过]

gZwi6LjU.rar

195.23 KB, 下载次数: 609

TA的精华主题

TA的得分主题

发表于 2008-2-4 00:42 | 显示全部楼层
QUOTE:
以下是引用BIN_YANG168在2008-2-3 11:25:28的发言:



将“品名”定义时多一个单元格 :=Sheet2!$B$2:$B$16

公式多加一个“&""”:=INDEX(品名,MATCH(,COUNTIF(J$1:J1,品名),))&""

即可不需要设置条件格式,达到实现容错的目的。

[此贴子已经被作者于2008-2-4 0:47:20编辑过]

TA的精华主题

TA的得分主题

发表于 2008-2-4 00:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
杨兄的“导入外部数据”→“新建数据库查询”得到不重复值,的确是一个实用的方法,谢谢了!

TA的精华主题

TA的得分主题

发表于 2008-2-6 20:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-2-7 21:14 | 显示全部楼层
感谢分享,为我等菜鸟开阔了思路。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-26 13:50 , Processed in 0.057600 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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