自定义Excel数据验证公式将输入限制为时间,空白或“-”

时间:2018-11-16 10:37:15

标签: validation time excel-formula

我正在尝试使用excels数据验证自定义选项编写数据验证规则(对于记录和处理服务时间(一天中的时间)的电子表格,以便将输入限制为时间,但用户还可以区分哪些条目仍然因此,我需要说的是,给定范围(列)中的每个像元必须是格式为“ hh:mm”的有效时间条目,或者为空白或“-” (以表明没有服务。相关列的格式为hh:mm。 到目前为止,我有以下内容,这是行不通的。

= OR(TIMEVALUE(TEXT(Q1248,“ hh,mm,ss”)),“”,“-”)

我收到警告“该公式当前评估为错误” 然后它将拒绝所有输入。

在此先感谢可以帮助您的人。

1 个答案:

答案 0 :(得分:0)

您需要询问“此单元格等于该值吗?对还是错?”

通过在数据验证对话框中选中“忽略空白”复选框,可以忽略空白。

=Q1248=TIMEVALUE(TEXT(Q1248,"hh:mm:ss"))将回答当被强制为时间值时,Q1248是否等于Q1248?

当它尝试将值-计算为格式为时间的文本时,就会出现问题。它返回#VALUE错误。
如果可以,则您的公式为=OR(Q1248=TIMEVALUE(TEXT(Q1248,"hh:mm:ss")),Q1248="-")- Q1248是否等于时间值,或者Q1248是否等于破折号?,但它将尝试评估OR语句的两个部分并且第一部分返回错误,因此整个公式都会返回错误。

这似乎可以用作数据验证(没有自定义数字格式):
=IF(ISNUMBER(Q1250),Q1250=TIMEVALUE(TEXT(Q1250,"hh:mm:ss")),Q1250="-")

如果该值不是数字,则对IF的第二部分进行求值,否则第一部分为,并且不会发生错误。


如前所述,这将无法正常工作,因为数据验证将尝试将“-”转换为时间值,这将导致错误:

=Q1248=TIMEVALUE(TEXT(Q1248,"hh:mm:ss"))并为单元格提供一种{strong> {number}的自定义数字格式。
任何正数将显示为时间,0或负数将显示为hh:mm;"-";"-"
只需使用-而不是0即可获得想要的结果。