我正在尝试将IF语句与MS Excel中的数据验证相结合。
我有一排单元格(A1,A2,A3 ......等)。
如果这些值为“否”,那么我希望下面一列中的值为“x”。如果值为“是”,那么我希望下面的值仅允许以日期格式输入。
有没有办法通过在数据验证'自定义'设置中输入IF语句来做到这一点?
感谢任何信息。
在你的一条评论中,你说:
如果A1为YES,则A2:A10应仅限于日期输入。如果A1为NO,则A2:A10应允许文本。
因此,您希望它始终接受值 - 您只希望仅当列顶部的单元格包含“否”时才限制值
要打开数据验证,您可以使用VBA。将此函数添加到Sheet1:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Then ' if the value changed is row 1
If UCase(Target.Value) = "NO" Then ' if the entry is "NO"
' delete and readd the data validation
Columns(Target.Column).Validation.Delete
Columns(Target.Column).Validation.Add _
Type:=xlValidateDate, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="1/1/2000", _
Formula2:="1/1/2100"
Else ' if the entry is not "NO"
' delete the data validation
Columns(Target.Column).Validation.Delete
End If
End If
End Sub
有趣的问题。看到您的评论后更新。
=IF(A$1:C$1="YES",A2:C10<=TODAY(),A2:C10="X")
仅限于在TODAY()之前或之前的日期。然后,您可以将其与条件格式组合,将其显示为“dd / mm / yyyy”,如:
公式:= A $ 1 =“是”;格式=“dd / mm / yyyy”;适用于= $ A $ 2:$ C $ 10