我正在尝试使用excels数据验证自定义选项编写数据验证规则(对于记录和处理服务时间(一天中的时间)的电子表格,以便将输入限制为时间,但用户还可以区分哪些条目仍然因此,我需要说的是,给定范围(列)中的每个像元必须是格式为“ hh:mm”的有效时间条目,或者为空白或“-” (以表明没有服务。相关列的格式为hh:mm。 到目前为止,我有以下内容,这是行不通的。
= OR(TIMEVALUE(TEXT(Q1248,“ hh,mm,ss”)),“”,“-”)
我收到警告“该公式当前评估为错误” 然后它将拒绝所有输入。
在此先感谢可以帮助您的人。
答案 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
即可获得想要的结果。