Excel - 如果单元格A ='是',则输入'x',否则使用数据验证来限制输入

问题描述 投票:0回答:2

我正在尝试将IF语句与MS Excel中的数据验证相结合。

我有一排单元格(A1,A2,A3 ......等)。

如果这些值为“否”,那么我希望下面一列中的值为“x”。如果值为“是”,那么我希望下面的值仅允许以日期格式输入。

有没有办法通过在数据验证'自定义'设置中输入IF语句来做到这一点?

感谢任何信息。

excel validation if-statement excel-formula spreadsheet
2个回答
1
投票

在你的一条评论中,你说:

如果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

0
投票

有趣的问题。看到您的评论后更新。

=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

© www.soinside.com 2019 - 2024. All rights reserved.