使用 AND 和 OR 测试条件组合

应用对象
Microsoft 365 专属 Excel Excel 2024 Excel 2021

当需要查找满足多个条件的数据时,例如 4 月和 1 月期间售出的单位或 Nancy 售出的单位,请将 AND 和 OR 函数一起使用。 示例如下:

在同一公式中使用 AND 和 OR

此公式将 AND 函数 嵌套在 OR 函数 中,以搜索在 2011 年 4 月 1 日至 2012 年 1 月 1 日之间售出的单位,或 Nancy 售出的任何单位。 对于 Nancy 售出的单位以及 Tim 和 Ed 在公式中指定的日期内售出的单位,它将返回 True 。

以下是可复制和粘贴的表单中的公式。 如果要在示例工作簿中使用它,请参阅本文末尾。

=OR (AND (C2>DATE (2011,4,30) ,C2>DATE (2012,1,1) ) ,B2=“Nancy”)

让我们更深入地了解这个公式。 OR 函数需要一组参数 (数据片段) ,可以测试这些参数是 true 还是 false。 在此公式中,第一个参数是 AND 函数,嵌套在其中的 DATE 函数,第二个参数是“Nancy”。可通过以下方式阅读此公式: 测试以查看销售是在 2011 年 4 月 30 日之后至 2012 年 1 月 1 日之前进行的,还是由 Nancy 进行的。

AND 函数还返回 True 或 False。 大多数时候,使用 AND 来扩展另一个函数(如 OR 和 IF)的功能。 在此示例中,如果没有 AND 函数,OR 函数将无法找到正确的日期。

将 AND 和 OR 用于 IF

也可以将 AND 和 OR 与IF 函数结合使用。

AND 和 OR 函数位于 IF 函数中

在这个例子中,人们要卖出至少价值 125,000 美元的商品才能获得奖金,除非他们在市场较小的南部地区工作。 在这种情况下,他们有资格在销售额达到 100,000 美元后获得奖金。

=IF (OR (C4>=125000,且 (B4=“南部”,C4>=100000) ) =TRUE,C4*0.12,“无奖励”)

我们再深入一点。 IF 函数需要三段数据 (参数) 才能正常运行。 第一个是逻辑测试,第二个是测试是否返回 True 要查看的值,第三个是测试是否返回 False 要查看的值。 在此示例中,OR 函数和嵌套在其中的所有内容都提供了逻辑检验。 可以将其阅读为: 查找大于或等于 125,000 的值,除非 C 列中的值为“南部”,然后查找大于 100,000 的值,并且每次两个条件都成立时,将该值乘以 0.12,即佣金金额。 否则,显示“无奖励”字样。

返回页首

示例数据

若要使用本文中的示例,请将下表复制到你自己的电子表格的单元格 A1 中。 请务必选择整个表,包括标题行。

Salesperson 地区 销售 公式/结果
Miller 东部 87925 =IF (OR (C2>=125000,且 (B2=“南部”,C2>=100000) ) =TRUE,C2*0.12,“无奖励”)
Stahl 北部 100000 =IF (OR (C3>=125000,且 (B3=“南部”,C3>=100000) ) =TRUE,C3*0.12,“无奖励”)
Foster 西部 145000 =IF (OR (C4>=125000,且 (B4=“南部”,C4>=100000) ) =TRUE,C4*0.12,“无奖励”)
崔 南部 200750 =IF (OR (C5>=125000,且 (B5=“南部”,C5>=100000) ) =TRUE,C5*0.12,“无奖励”)
刘鹏 南部 178650 =IF (OR (C6>=125000,且 (B6=“南部”,C6>=100000) ) =TRUE,C6*0.12,“无奖励”)
Thomas 北部 99555 =IF (OR (C7>=125000,且 (B7=“南部”,C7>=100000) ) =TRUE,C7*0.12,“无奖励”)
Keever 东部 147000 =IF (OR (C8>=125000,且 (B8=“南部”,C8>=100000) ) =TRUE,C8*0.12,“无奖励”)
Cassazza 北部 213450 =IF (OR (C9>=125000,且 (B9=“南部”,C9>=100000) ) =TRUE,C9*0.12,“无奖励”)
Brownlee 南部 122680 =IF (OR (C10>=125000,且 (B10=“南部”,C10>=100000) ) =TRUE,C10*0.12,“无奖励”)
Smithberg 西部 92500 =IF (OR (C11>=125000,且 (B11=“南部”,C11>=100000) ) =TRUE,C11*0.12,“无奖励”)
Benson 东部 88350 =IF (OR (C12>=125000,且 (B12=“南部”,C12>=100000) ) =TRUE,C12*0.12,“无奖励”)
阅读 西部 102500 =IF (OR (C13>=125000,且 (B13=“南部”,C13>=100000) ) =TRUE,C13*0.12,“无奖励”)

返回页首