这是Alan Murray的一位客人帖子Computergaga.。
数据验证是一个非常有用的Excel工具。由于Excel用户渴望学习高速公路,图表和公式,它通常会被忽视。
它控制可以输入到单元格中的内容,以确保其准确性和一致性。使用数据时的一份非常重要的工作。
在这篇博文中,我们将探讨11个有用的数据验证的例子。
应用这些数据验证规则;
- 首先选择要应用验证的单元格范围。
- 单击“数据”选项卡,然后单击“功能区上的数据验证”按钮。
- 在Settings选项卡中,选择验证规则条件。
目录
仅允许大写条目
您可能需要确保以大写输入的数据,例如输入的邮政编码的示例。
单元格需要同时接受文本和数字的输入,但是文本必须是大写的。
为此,我们可以使用带有鞋面和确切函数的公式。
上部功能可能会对自己说话。它将文本转换为大写。
确切的函数用于将单元格条目与大写版本进行比较,以查看它们是否相同。如果是,则输入有效。
对于本例,验证应用于A2:A6范围。从“允许”列表中选择“自定义”,并在“公式”框中输入以下公式。
防止未来日期
在电子表格上输入日期非常常见。不幸的是,输入错误日期的用户也是司空见惯的。
通过使用验证规则,我们可以限制用户可能制作的错误。
在这个例子中,我们防止了未来日期的条目。也许用户正在录制发生的事务。因此,它必须是过去或今天的日期。
从允许列表中选择日期,然后从数据中选择小于或等于。
在“结束日期”框中,在下面键入公式。
今天函数从计算机返回当前日期。非常有用。查看更多伟大的Excel日期函数(//www.cartsnwheels.com/category/functions/date-time/)。
创建下拉列表
创建下拉列表是大多数人熟悉数据验证功能的原因。创建列表是一种控制数据条目的简单有效方法。
从允许列表中选择列表。然后,您可以将列表项直接键入由逗号分隔的源框,或者是指包含列表项的一系列单元格。
当您需要一个简单的列表,例如Open和Closed,或者Yes和No时,输入条目是有意义的。
当您需要一个更动态的随时间变化的项目列表(如产品、地点和人员列表)时,引用范围是有意义的。
对于此列表,单击“源”框,然后选择包含项目的单元格。
在此示例中,该项目的范围A1:A5称为名称。
从属下拉列表
让我们进一步下拉列表并创建依赖列表。对于这些列表,在一个列表中选择的项目将影响下一个列表中出现的选项。
在下面的示例中,我们有一个Cell F2中的城市列表。此列表中的选择会影响单元格G2中的下一个列表中的名称。
为了实现这一点,我们首先必须列出每个列表。例如,区间A2:A4被命名为city,区间B2:B6被命名为cardiff,等等。
按照以下步骤创建命名范围。
- 选择要命名的范围,例如A2:A4。
- 单击公式栏左侧的名称框。
- 键入要申请的名称,然后按Enter键。
单元格F2中的列表是创建的,就像在上一个例子中一样。在“源”框中,您可以键入= City以引用命名范围。
对于单元格G2中的从属列表,单元格F2中的选择需要转换为对命名范围的引用。这是通过使用INDIRECT函数完成的(学习更多关于INDIRECT函数的精彩示例)。
创建依赖列表时的常见问题是使用命名范围中的非法字符。您无法使用数字,或使用空格和一些其他符号开始命名范围。
因此,如果列表中的项目使用空格,或者从数字开始,它会呈现障碍物。了解如何在下面的视频中克服此问题。
防止重复值
重复值是Excel中非常常见的问题。有许多识别和删除重复数据的技术,但如果你能在一开始就阻止它们,那就更好了。
通过在自定义公式中使用Countif函数,我们可以。
下面的公式计算输入值在A2:A8范围内出现的次数。如果答案是0,那么这个值是唯一的并且是允许的。
只允许数字或文本条目
ISNumber函数可用于创建验证规则,该规则仅允许在单元格中输入数值。
从允许列表中选择自定义并使用下面的公式。在该示例中,小区A2是所选择的细胞范围的左上电池。
这将允许任何数值,只包括日期和时间。
仅允许文本值,我们可以以相同的方式使用ISText函数。
根据另一个单元验证条目
您可以通过编写自定义公式创建基于另一个单元格的值的数据验证规则。
例如,也许您只希望在另一个单元格不为空时出现下拉列表。
下面的IF函数将测试单元格A2是否为空,如果为空,则显示来自名为range的位置的列表。
仅允许平日进入
输入日期时,您可能需要将用户限制到本周特定日期的条目。我们可以通过工作日函数实现这一目标。
对于本例,我们将只限制从周一到周五的日期输入。下面的公式可以用于此。
工作日函数返回一个代表一周日期的数字。在工作日函数中,2指定每周在星期一开始为1到周日7。
在此验证规则中,返回的值必须小于或等于5.这不包括星期六和星期日。
限制文本长度
条目可能需要具有特定文本长度,或者不超过一定数量的字符。创建验证规则可以帮助我们确保这一点。
在本例中,我希望将文本长度限制为恰好9个字符。
从允许列表中选择文本长度,等于从数据列表中选择文本长度,然后输入9作为长度。
条目包含特定文本
在验证规则中使用公式使我们能够测试和验证几乎任何内容。
在最后一个示例中,我们确保条目包含特定的文本。
Find函数用于搜索特定的文本字符串(此示例中的“eng”)并返回其在单元格内的位置。如果找到未找到文本,则返回错误。
ISNUMBER函数用于检查FIND函数是否成功(如果它返回了一个数字)。如果是,则ISNUMBER返回True,否则返回False。这就完成了我们的验证测试。
下面是使用的公式。
注意:Find功能区分大小写。如果您不需要匹配文本的情况,则可以使用搜索功能。
创建有意义的错误消息
我们在本文中看到了10个数据验证示例。但是,如果数据进入错误进行了相同的验证,无论验证标准如何。
好消息是,您可以创建自己的错误消息,以有效地向用户传达可能出现的错误。
单击“数据验证”窗口的“错误警报”选项卡。
从“停止”、“警告”或“信息”列表中选择样式。
- 停止将防止输入无效数据。
- Warning显示错误,但是可以选择允许或阻止该条目。
- 信息显示错误,但不会阻止数据输入。
为错误警报键入标题和错误消息。
让我们借鉴平日进入小区的例子。您可以创建这样的错误消息。
结论
我认为数据验证是Excel的低估工具。如果没有清洁数据,我们的琶音,图表和公式将无法正常运行。
此功能提供了一种限制错误和收集条目的清洁数据的方法。
当从其他数据库、工作簿和网站接收数据时,数据验证无法提供帮助。
如果你有这样的习惯,我强烈建议你去看看Excel的权力查询功能。一种强大的工具,用于建立连接和自动化清洁和从外部源转换数据的过程。
关于作者
艾伦是创始人Computergaga.并且有一个大的YouTube在他分享Excel提示和教程的地方。他和他的妻子和2个孩子一起住在英国。他对Excel和Data的激情让他忙碌,但是当他有空闲时间时,他喜欢跑步和徒步旅行。
好的编译艾伦 ...........谢谢你的分享。
很棒的工作,先生,
如何输入数据验证,以便新的行迭代到下一个行引用?例如,在第39行引用单元C39的单元C38中的数据验证设置?对于某些单元格,它的作品和其他单元格在数据验证设置/源字段中不会递增。
你好:
如何在下拉单元格中禁止输入,而在excel中只允许列表项的选择?
我认为这是不可能的。可能与一些VBA。但即使他们输入,它也会得到验证。
“我们如何禁止进入下拉牢房......?”
在Data Validation窗口的Error Alert选项卡上,选择“Stop”样式,并添加一条解释用户必须做什么的消息。
哦,在验证条件>允许字段中选择List。
数据验证是一个如此酷炫的功能,所以我总是看着人们可以使用它们的不同方式。
绝对的。而学习数据透视表和图表等更有用的工具时,往往被忽视了。但没有可靠的数据,一切都结束了。
非常感谢您的信息=非常有帮助!
您如何设置将允许特定文本的数据验证,但不会允许您在该文本之前或之后输入空格?
即,它们只能在单元格中输入EXE,PRO,SPEG - 但不是exe,spec,pro。
感谢您的帮助!它非常感谢!!!
您可以使用列表选项。要么输入由逗号分隔的那些单词,或者是指写入的一系列单元格。
如果你不想要列表,你可以取消单元格内下拉框。
在数据验证的自定义选项中使用此公式
= ISERR(查找(“”,E4))
在验证公式中使用trim():
=修剪(CellRef)= CellRef
谢谢你!但我不想使用下拉列表,因为它们显示得这么小。我确实把那些可以输入的特定词语......但是,我会意外地把一个空间放在字母背后,然后我的其他领域的公式不会拿起它的空间中的细胞信息。
是的,只要不选中单元格内的下拉框,你就不会得到一个列表。您可以使用这样的公式- A1=TRIM(A1)来防止在前面和后面有空格。这假设您的选择从A1开始。然后我们只需要把它限制在你的三个单词之内。
您的其他公式可以包括TRIM()函数,以便即使空格被错误地添加,那么这些公式也会正确地叠加它们。
谢谢你。
我不确定我解释得对不对。
您可以在同一单元格上有多个数据验证吗?
我选择了单元格A1, D20
我已经完成了只有LTR,STR,EXE,Pro的数据验证可以在这些单元格中输入。哪个有效。
那么我如何在这些相同的单元格A1..D20,如果他们在这些字母后面输入空格,就不会被允许?
如果在“数据验证”中通过引用单元格的范围而不将它们输入源框中而生成一个列表。这也将防止尾随空间场景。我刚把你的四项写在一张纸上,单元格是A1:A4。命名范围项。然后在Data Validation列表的源中使用=项。
请记住,您可以转动内部的下拉。您不必拥有该列表。只需为您的四进入者提供此选项。
谢谢你!谢谢你!谢谢你! !
这就解决了后面的... .现在我可以用全大写吗?
可以使用EXACT函数来确保文本匹配大小写,但我不确定这是否可以与列表功能一起使用。我认为这对数据验证来说可能太多了。
你有没有得到你需要这个问题的答案?
你好,
我需要使用产品代码列表和特定的单元格返回一旦我开始进入后匹配该代码的产品代码。
我可以用什么?数据验证与公式..搜索和找到产品代码,并显示它,一旦我开始键入?还是别的?
我需要限制输入(输入代码)到一个列表(范围),并在开始输入时显示代码。
谢谢
显示列表,同时键入不是数据验证作为标准的东西。使用VBA或复杂公式的人网站上有教程,以获得模仿。很多努力很少奖励,也会增加Excel的处理。希望未来的版本将带来这个。
你好,
谢谢回复。
我正在做的另一个项目,要求我使用一个工作簿,其中有3个不同的列,可以过滤(用常规过滤器),然后在第三列得到最终结果。这是为了缩小下拉列表。
在实际工作簿中,我需要在下拉菜单中显示最终结果。
我正在考虑一个可搜索的表格显示结果。
有没有办法在Excel中使用简单的功能可以做到这一点?
举个例子会很有帮助。
谢谢你!
嗨lyl,
听起来你想要依赖下拉列表。我有一个视频在这里设置这些视频 -https://youtu.be/5nb84p2wx-c.
你好
非常感谢您的信息和分享您的知识!
假设我必须创建两个下拉菜单,一个指定开始日期,另一个指定结束日期——我的日期列在活动表上(例如。12/31/2014 12/31/2015等等。)
如何确保结束日期始终大于或等于开始日期?
谢谢!!!
你好,
非常感谢您的信息和分享您的知识!
问题:
Let’s say I had to create two drop-down menus: one specifying a Start date and the other an End date, with the dates listed on my active sheet (eg. 12/31/2015, 12/31/2016 etc.) How can I make sure the End date is always greater than or equal to the End date?
非常感谢!
如果将单元格用于下拉列表,则该单元格只能包含一个验证规则。您可以不使用下拉框,而是使用greater than规则的Data Validation。
或者如果要保持下拉目,也许使用不同的技术,如条件格式。如果它大于或等于开始日期,则可以将单元格更改颜色来更改颜色,而不是停止用户。
在条件格式化中,如果开始日期为A2和B2中的结束日期,则公式可以是= B2
我有一个问题,我有两种不同类型的数据。
我希望当验证出现的一种类型的数据时,应将其总量放在单元格中
当我通过选择第二种类型的数据通过验证改变相同单元格的数据时,它的总数应该放在另一个单元格中,而不是之前。
嗨Yashraj,单元格只能包含一种格式类型 - 编号或文本。也许你不希望在单元格中验证。无论哪种方式,您可以通过在这些单元格中使用公式显示总计的单元格。根据您的场景,如果可能足以测试验证单元格并运行公式,则根据您的情况。
我发现“基于另一个单元格”验证一个条目“特别有用,alan,并立即使用此公式中的表名将其应用于当前项目:
= if(Isnumber(E6),间接(“table_title_object_type [system id]”),间接(“table_title_object_type [层次结构]))))。
这允许用户从列表(层次结构)中挑选,或者如果已经知道它,请输入层次结构的ID号。
下面是一个使用命名范围的变体:
= if(g2 =“hh”,hh,if(g2 =“ns”,ns,if(g2 =“bot”,bot)))
谢谢你的提示!
你是菲利普。谢谢你。
你好,
假设我在创建下拉列表时硬编码1,0,并改变格式以YES或NO显示结果。我如何将这种格式应用到下拉列表中,而不仅仅是结果?
下拉列表内容不能格式化,只能通过格式化下拉列表所在的单元格得到该内容的结果。
它很棒 - 非常好的解释 - 我设法清除了很多疑惑 - 谢谢
不客气,阿育王。乐意帮助。
你好,
在“防止重复”部分中,对于一个值是唯一的,Countif公式必须返回1,而不是零。这就是它在excel中的工作原理。如果我放零,则拒绝任何条目。
帕特里克完全正确。我去换一下。
有没有办法,我只能在单元格中输入特定的2到3个单词和日期,例如,如果活动完成,则完成的日期,如果活动挂起,如果与这些条目分开出现问题“问题”,则不应有可能
确定Varaprasad。这三个选项将是你的经典下拉列表。对于完成日期,如果需要,可以使该单元格依赖于在另一个单元格中输入的完成。本教程中展示了基于另一个单元格值的规则示例。
嗨,艾伦,
有没有办法将下拉列表与另一个验证(例如防止重复值)组合?
不,抱歉,不在数据验证规则内。您必须在下拉列表的顶部使用宏进行验证检查。
谢谢艾伦。
我有一个很复杂的问题。
我有两个表T1和T2,它们都有相同的列:“Name”和“City”。现在,如何向T2添加数据验证列表。用T1过滤的名称。名称T2。城市= T1.City。
基本上我想在T2.Name中过滤下拉的名称,只使用来自同一个城市的T1.names。
提前致谢。
我的荣幸。这听起来像查找公式而不是数据验证列表。如果由T1过滤一个城市,则不需要列表。
VLOOKUP将完成这项工作。
很高兴看到艾伦回复。
当然,我需要一个数据验证下拉列表,只是它必须根据查找表中当前表的City(两个表之间的公共列)值进行过滤。
因此,对于T2名称列下拉列表被过滤并仅显示那些居住在该城市的名称。
为了增加一点复杂性,过滤后的相关列表应该是“不同的”名称
哦,好吧。你是否在使用365,因为如果你在使用,使用新的UNIQUE和FILTER功能,这个任务很简单。
如果没有,数据透视表可以用来创建唯一的城市列表,也可以从它们中创建相关的下拉列表。
如何将验证用于强制列,任何人都知道..
你可能在VBA中做得更好。只有当有人试图进入单元格时,数据验证才有效。VBA可以在提交、保存、打印或其他操作之前检查单元格值(确保它们已经被使用)。
嗨,艾伦。
谢谢你这个好帖子。
我有特定的查询。我使用了数据验证输入消息选项,以在Excel中为某些特定单元格添加注释。
但是,没有指示特定的小区有一些消息。它才有当我点击单元格时,我看到了消息。
如果我们为单元添加评论添加注释时,单元格角中存在一个小红色箭头,表示为小区输入了注释。是否有一些类似的安排,我们可以为数据验证消息进行。
谢谢
-ashutosh.
嗨,Ashutosh,在数据验证中没有这样的设置。对不起。
嗨,Alan,有没有办法创建一个包含数据名称和其他文本值的下拉列表?例如,需要一个Year(Today()) - 1, Year(Today()), None, Both的下拉列表。谢谢你!
我不确定你到底是什么意思,但是看看你的例子,我会把这些公式和文本值一起放到单元格的某个地方。然后选择它们作为DV列表。
嗨有人可以帮助excel中的公式,确保单元格只能长为9个字符。如果条目不符合要求,则必须显示以下情况:停止符号和错误消息:文本长度必须为9个字符
嗨Elizna,这在教程中显示。有一个例子是“限制文本长度”,然后一个用于“创建致命错误消息”的示例。