Excel:如果所有单元格都等于两个值之一,则为 true,false

Excel:如果所有单元格都等于两个值之一,则为 true,false

我需要 Excel 公式方面的帮助。问题如下:我有 5 个单元格,每个单元格的值有三个:是、否和 N/A。我尝试创建一个公式,如果所有这些单元格的值都是是或 n/a,则显示“TRUE”,否则显示“false”,但我似乎无法弄清楚。

我尝试过以下方式:

=IF(AND(OR(A1=“是”, A1=“N/A), OR(B1=“是”, B1=“N/A”), “TRUE”, “FALSE”))

即使这些单元格中有“否”,它也会返回 true

答案1

因为您只想返回 TRUE 或 FALSE,所以您可以让公式显示条件的 TRUE 或 FALSE 结果,而无需 IF()。

因此,这以一种简单的方式执行逻辑,使用“+”运算符数学上“或”一个数组,然后使用逻辑AND 以便返回结果为 TRUE 或 FALSE。

=AND((A1:B1="Yes")+(A1:B1="N/A"))

此外,您的问题表明您有 5 个值,而您的示例公式仅涵盖 A1 和 B1。上述公式可以推广到任意数量的列,例如:

=AND((A1:E1="Yes")+(A1:E1="N/A"))

相同的逻辑在第 1 列的垂直值列表中起作用:

=AND((A1:A5="Yes")+(A1:A5="N/A"))

答案2

如果您有五个值,您只需按照我在评论中建议的公式更改范围和总数即可:

 =IF(COUNTIF(A1:E1,"Yes")+COUNTIF(A1:E1,"N/A")=5,"True","False")

答案3

动态公式

此解决方案使用按名称或 A1/R1C1 引用标识的单元格范围 (rng)。它还使用硬编码值数组 (arr) {“Yes”、“N/A”} 进行匹配。


  1. 使用 SUM 和 COUNTIF 函数获取范围 (rng) 中与数组 (arr) 中至少一个值匹配的所有值的计数。
  2. 使用 ROWS 或 COLUMNS 函数确定范围内的总行数或列数(rng)。
  3. 使用 IF 函数检查步骤 1 (res1) 的结果是否小于步骤 2 (res2) 的结果,这意味着至少一个单元格与数组中的值不匹配。您将其等同于“FALSE”(F)。
     +---------------+
 1.  | Count Matches |  =SUM(COUNTIF(rng,{arr}))
     +---------------+

     +---------------+
 2.  | Count Checked |  =ROWS(rng)        // alternatively: =COLUMNS(rng)
     +---------------+

     +---------------+
 3.  | Count Checked |  =IF(res1<res2,"F","T")
     +---------------+

     +---------------+
 4.  | Combine Them  |  =IF(SUM(COUNTIF(rng,{arr}))<ROWS(rng),"F","T") 
     +---------------+

插入样本数据 (第 1 行 5 列)

  =IF(SUM(COUNTIF(A1:E1,{"Yes","N/A"}))<COLUMNS(A1:E1),"False","True")

额外选项

在解决方案中,要检查的值数组 (arr) 在公式 {“Yes”,“N/A”} 中是硬编码的。

或者,您可以指向由名称或 A1/R1C1 引用 (arrRng) 标识的单元格范围。

为了使其正常工作,您需要删除公式中的数组括号“{ }”。

在这种情况下这显然不是必要的,但如果您将来在另一个情况下重复使用,则可能是必要的。

 =IF(SUM(COUNTIF(rng,arrRng)<ROWS(rng),"F","T")   // arrRng vs {arr} 

相关内容