Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel formula excel验证中的自定义条件,使用OR语句_Excel Formula - Fatal编程技术网

Excel formula excel验证中的自定义条件,使用OR语句

Excel formula excel验证中的自定义条件,使用OR语句,excel-formula,Excel Formula,我想使用Excel验证只允许输入本日历年或下一日历年的日期或预定义列表中的文本 例如,今天是2017年1月12日。 如果输入了日期(如单元格C1),则该日期必须在2017年或2018年。 如果输入文本,则它必须与预定义列表中的一个条目相匹配。 假设本例中的列表名为“原因”(这些原因可能类似于“待确认”、“超出计划范围”等) 2019年12月1日应被拒绝 应接受2018年12月1日 “本月之后”应被拒绝 “超出规划范围”应被接受 我认为我应该使用自定义验证,但如果有人能帮助我使用语法,我将不胜感激

我想使用Excel验证只允许输入本日历年或下一日历年的日期或预定义列表中的文本

例如,今天是2017年1月12日。 如果输入了日期(如单元格C1),则该日期必须在2017年或2018年。 如果输入文本,则它必须与预定义列表中的一个条目相匹配。 假设本例中的列表名为“原因”(这些原因可能类似于“待确认”、“超出计划范围”等)

2019年12月1日应被拒绝 应接受2018年12月1日 “本月之后”应被拒绝 “超出规划范围”应被接受

我认为我应该使用自定义验证,但如果有人能帮助我使用语法,我将不胜感激。

好的,我们终于成功了(出于某种原因,验证公式不喜欢我的
COUNTIF()
或()
语句的一部分,所以我必须将
TRUE
结果嵌套为单独的
if()的一部分)
声明:

=IF(COUNTIF(reasons,C1)=1,TRUE,或(YEAR(C1)=YEAR(TODAY()),YEAR(C1)=YEAR(TODAY())+1))

正如您所说,这将在自定义验证中进行。请确保
$
不在其中,因为它需要更新列下的单元格范围

逻辑是如果条目出现在命名范围内,原因是一次,然后为TRUE,否则在今年或明年进行OR匹配(如果条件正确,默认情况下返回TRUE)。

好的,我们最终成功了(出于某种原因,验证公式不喜欢my
COUNTIF()
作为
或()
语句,因此我必须将
TRUE
结果嵌套为单独的
IF()
语句的一部分:

=IF(COUNTIF(reasons,C1)=1,TRUE,或(YEAR(C1)=YEAR(TODAY()),YEAR(C1)=YEAR(TODAY())+1))

正如您所说,这将在自定义验证中进行。请确保
$
不在其中,因为它需要更新列下的单元格范围


逻辑是,如果条目出现在命名范围内,原因为一次,则为TRUE,否则执行或年匹配今年或明年(如果条件正确,则默认返回TRUE).

欢迎来到SO,我大约一年前做了类似的事情。我将尝试挖掘旧工作簿,看看我做了什么。感谢Glitch_DoctorSo,我找不到有问题的工作表。你希望列表下拉列表,因为我无法提供,只是玩自定义验证,看看我是否可以复制我所做的。我不需要drop-down,谢谢;欢迎使用,我大约在一年前做了类似的事情。我将尝试挖掘旧工作簿,看看我做了什么。感谢Glitch_DoctorSo,我找不到有问题的工作表。你希望列表下拉,因为我无法提供,只是玩自定义验证,看看我是否可以复制我所做的。我不希望需要一个下拉列表,谢谢;刚刚尝试了这个,它完全按照我想要的方式工作。非常感谢你的帮助。很高兴它工作了,谢谢你接受答案!刚刚尝试了这个,它完全按照我想要的方式工作。非常感谢你的帮助。很高兴它工作了,谢谢你接受答案!