Excel 允许在单个单元格中进行两种形式的数据验证

Excel 允许在单个单元格中进行两种形式的数据验证,excel,excel-formula,validation,Excel,Excel Formula,Validation,如果不使用VBA,是否可以根据另一个单元格的内容使单元格的数据验证有所不同?例如,如果在单元格A1中输入“是”,则A2将填充项目列表。另一方面,如果A1中输入No,则A2允许任何值 根据单元格的内容,我可以使用以下公式作为数据验证中的源来获取不同的列表: =IF(A1="","",IF(A1="Yes",Sheet1!$C$1:$C$4,Sheet1!$D$1:$D$6)) 但是,如果A1为空,我不确定是否可以完全禁用此功能。使用上述公式,将A1留空将不允许您在单元格中输入自由文本,尝试这样做

如果不使用VBA,是否可以根据另一个单元格的内容使单元格的数据验证有所不同?例如,如果在单元格A1中输入“是”,则A2将填充项目列表。另一方面,如果A1中输入No,则A2允许任何值

根据单元格的内容,我可以使用以下公式作为数据验证中的源来获取不同的列表:

=IF(A1="","",IF(A1="Yes",Sheet1!$C$1:$C$4,Sheet1!$D$1:$D$6))
但是,如果A1为空,我不确定是否可以完全禁用此功能。使用上述公式,将A1留空将不允许您在单元格中输入自由文本,尝试这样做将导致数据验证错误。

使用间接函数。如果另一个单元格包含命名区域的名称,则下拉列表将包含该区域中的单元格。
有禁止使用的字符,但在其他方面,它就像一个符咒。

我不完全确定我是否正确回答了你的问题,但这可能会为你提供一个解决方案:谢谢@Tom,但这是一个稍微不同的问题。我正在寻找一种方法来更改数据验证类型,即根据单元格的内容更改任何值或列表,而不是根据单元格的内容更改列表的内容。如果不使用VBAYeah,我想不出一种方法来动态更改单元格中的验证类型,我想您可以做一些变通。有两个表,其中一个表包含项目列表,另一个表引用其他值。然后根据A1,您的列表将填充相应的表。不完全确定这是否有效,但如果允许任何值,您希望如何填充列表?谢谢,但这并没有回答问题-请参阅我上面的评论。我希望动态更改验证的类型,而不是列表中的范围。后者将在单一类型的验证中动态更改列表,这不是我试图做的。