使用OR运算符的Excel条件

时间:2016-05-09 12:27:12

标签: excel

我正在学习MS Excel公式制作。如果列A的单元格中包含文字SatSun,则相应的列B应为Weekly Off,但后续行为不起作用。

=IF(OR(SEARCH("Sun",A:A),SEARCH("Sat",A:A)),"WeeklyOff")

2 个答案:

答案 0 :(得分:0)

您正在使用的OR语法没有任何问题,但您使用的公式还有两个问题:

  1. 您需要使用单元格而不是范围,将A:A替换为有效的参考单元格位置。
  2. 如果您的日期是从公式派生的,则需要先将其转换为文本,然后再使用它。
  3. 以下是一个例子:

    =IF(OR(SEARCH("Sun",TEXT($A1,"[$-F800]dddd, mmmm dd, yyyy")),SEARCH("Sat",TEXT($A1,"[$-F800]dddd, mmmm dd, yyyy"))),"WeeklyOff")
    

答案 1 :(得分:0)

=IF(OR(SEARCH("Sun",A1),SEARCH("Sat",A1)),"WeeklyOff","")

通常你会将它放在B1中并复制下来。但是,如果您这样做,您将收到一系列错误。问题是当搜索无法找到他们正在搜索的文本时,它会生成错误。为避免这种情况,您需要将搜索包装在错误捕获器(如IFERROR)中,并将其设置为在出现错误时返回0.

=IF(OR(IFERROR(SEARCH("Sun",A1),0),IFERROR(SEARCH("Sat",A1),0)),"WeeklyOff","")

从技术上讲,搜索将告诉您在字符串中查找内容的起始位置。所以如果你有" xxxxSat2"搜索"星期六"将告诉你4.幸运的是,if语句的逻辑部分似乎将任何正整数视为真。上述公式将按原样运作。我可能会把它改成以下内容:

=IF(OR(ISNUMBER(SEARCH("Sun",A1)),ISNUMBER(SEARCH("Sat",A1))),"WeeklyOff","")

或者,如果列A实际上是Excel日期,但单元格格式化为仅显示星期几,则可以使用以下内容:

=IF(OR(WEEKDAY(A1)=1,WEEKDAY(A1)=7),"WeeklyOff","")