Excel 使用空单元格验证单元格数据

Excel 使用空单元格验证单元格数据,excel,validation,Excel,Validation,我想创建只能放置两个值的单元格:“x”或“”(空单元格)。我希望用户能够手动(从键盘键入“x”或使用backspace清除单元格)或使用下拉列表(其中仅包括提到的2个值)输入值 但是Excel不想让我这么做 我知道创建下拉列表的唯一方法是使用“数据验证”并选择“列表”作为类型。要使列表包含空单元格,我必须使用命名区域作为源 所有这些都可以正常工作,只是没有验证——用户可以在单元格中键入任何值,并且没有错误 要强制实际验证,我必须取消选中“忽略空白”选项。除了现在用户无法手动输入值之外,这几乎可以

我想创建只能放置两个值的单元格:“x”或“”(空单元格)。我希望用户能够手动(从键盘键入“x”或使用backspace清除单元格)或使用下拉列表(其中仅包括提到的2个值)输入值

但是Excel不想让我这么做

我知道创建下拉列表的唯一方法是使用“数据验证”并选择“列表”作为类型。要使列表包含空单元格,我必须使用命名区域作为源

所有这些都可以正常工作,只是没有验证——用户可以在单元格中键入任何值,并且没有错误

要强制实际验证,我必须取消选中“忽略空白”选项。除了现在用户无法手动输入值之外,这几乎可以实现这一点——即使用户提供正确的数据,也会出现错误

有没有办法让Excel真正做到它应该做的

编辑:如此基本的事情不能直接完成,需要肮脏的黑客,这真的是应受谴责的


编辑2:Excel版本之间可能存在差异。我使用MS Office 365 ProPlus。我并没有在我的问题中有意地详细说明这一点,因为我想要一个版本不可知的解决方案。但是可能没有。

假设您的目标单元格是
A1
,那么您可以在该单元格上使用以下公式进行自定义数据验证:

=OR(A1="x",A1="")

仅当“x”或空单元格作为值插入时,此选项才会生效。将拒绝所有其他值。您好,

您是如何尝试的?您可以在列表中使用以下内容:

x,=char(1)
x,=''
,为我工作:


抱歉-我无法对BruceWayne的回复发表评论,因此请将此作为答复发布


如果您能够引用单元格进行数据验证,则一个单元格的值为x,另一个单元格的值为“”。选择这两个单元格作为数据验证中的列表源。空白值在下拉列表中是可见的和可选择的。

我也需要下拉列表。实际上这几乎是有效的。完全可以,但我希望下拉列表显示空行,而不是“=char(1)”字符串。有没有办法做到这一点?@NPS我会试试。你能使用宏吗?或者没有VBA?我宁愿避免使用宏。@BruceWayne为旁白的讨论道歉。。。出色地展示了您的结果。您使用什么工具生成此gif?@nbayly-不用担心!这是一个叫做。这是一个非常轻量级的程序,使用起来非常简单:我没有验证(可以输入任何值)。关闭“忽略空白”时,我无法手动清除单元格(使用退格)。我无法复制此操作。打开“忽略空白”时,我只能有一个空白单元格或一个x。我还可以使用退格手动清除单元格。要明确的是,验证源的第二个单元格不是空的-它的值为“一个想法”-您是否检查了“显示错误警报”选项卡是否已选择“停止”选项?默认为“停止”(除非我不明白您在问什么)。奇怪的是,你的行为和我的不同——在“忽略空白”的状态下,我可以在单元格中键入任何内容,按enter键(或离开单元格),但不会出现任何错误。我尝试了各种选项。当我用一个空白单元格实现验证时,它会按照您的意愿运行。当我使用单元格中的值执行验证时,我无法删除空白值。但可以肯定的是,当我从一个空白单元格开始,按照描述进行验证时,它会按照您的要求工作。奇怪的是,我们用相同的命令得到不同的输出。