如何检查多列的真值或“Y”值 失败案例“工作”案例

问题描述

我有一个包含多列的工作表,需要检查 TRUE 值或 "Y" 什么是最简单的方法来做到这一点。我使用 IF 函数进行了检查,它工作正常,但公式很长。我曾尝试使用 COUNTIF 公式,但无法让它发挥作用。

COUNTIF(W2:X2,"Y")+COUNTIF(Z2:AB2,"Y")>0,OR(Y2="TRUE",AC2="TRUE")

这是电子表格的链接 https://docs.google.com/spreadsheets/d/12k9usKsOgrOUhtW5WBvfY7WB5hbfnTMSPgXtrqcRFjM/edit?usp=sharing

如果任何 columns A-N 显示 YTRUE,我希望列 O 返回任何值。

解决方法

你可以使用

=IF(OR(countif(A2:N2;"Y");countif(A2:N2;TRUE));"it works";"fail")

作为 countif() 返回许多正面或真实案例。使用 OR() 函数比较 "Y"TRUE 值计数的状态将返回一个 TRUEFALSE 值,它位于 {{1 }} 语句可以告诉您是否有任何列有 if()Y,或者所有列都没有。

失败案例

Fail Case - NO Y or TRUE

“工作”案例

OK Case - 1 or more Y or TRUE

,

如果您想要一个数组解决方案(即,只使用一个公式处理所有行的解决方案),请删除示例表中 O 列的所有内容(包括标题),并将以下公式放入 O1:>

=ArrayFormula({"Header of Choice";IF(A2:A="",IF(ISERROR(REGEXEXTRACT(TRANSPOSE(QUERY(TRANSPOSE(A2:N)," ",COLUMNS(A1:N1))),"Y|TRUE")),"FAIL","PASS"))})

您可以根据需要在公式中更改标题。

公式的其余部分利用了 QUERY 函数允许多个标题(不仅仅是 0 或 1)这一事实。简而言之,所有每行数据都连接到 TRANSPOSEd QUERY 列标题,然后 TRANSPOSEd 回到行中(一种很酷的逐行连接方式);然后 REGEXEXTRACT 尝试在每一行的连接字符串中找到“Y”或“TRUE”。如果该尝试导致错误,则返回“FAIL”;如果成功,则返回“PASS”。

显然,您可以将“通过”和“失败”更改为您喜欢的任何内容。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...