谷歌表格中带有 ifs、isblank 和 AND/OR 的数组公式
Posted
技术标签:
【中文标题】谷歌表格中带有 ifs、isblank 和 AND/OR 的数组公式【英文标题】:arrayformula with ifs, isblank and AND/OR in google sheets 【发布时间】:2018-02-12 18:04:24 【问题描述】:我想要实现的是一个公式,该公式在指定范围内检查“全部为空白”或“全部为非空白”的顶行。根据条件,带有公式的单元格会返回 3 个单词中的 1 个或将其留空。
我用以下图片中的颜色进一步说明了这一点
到目前为止我的公式:
=ArrayFormula(ifs((not(isblank(A1:B1*C1:E1*G1:I1))*(isblank(J1:L1*N1:P1))),"SEND",
not(isblank(A1:B1*J1:L1*N1:P1))*isblank(C1:E1*G1:I1),"RECEIVE",
not(isblank(A1:B1*C1:E1*G1:I1*J1:L1*N1:P1)),"TRANSFER",
ISBLANK(A1:B1+C1:E1+G1:I1+J1:L1+N1:P1),""))
我不明白公式有什么问题。例如在J1:L1*N1:P1
被填充的情况下,isblank(J1:L1*N1:P1)
在我希望它是true
时返回false
。
【问题讨论】:
嗯,到目前为止,你有什么问题? 现在无论行中有什么,它都会返回“TRANSFER”。所以我想要它如下;范围已填充="TRANSFER",任何范围 J:P 未填充="SEND",任何范围 C:I 未填充="RECEIVE",以上任何一个为 FALSE=空单元格 【参考方案1】:以下是单独的 IF 语句:
=IF((COUNTIF(A1:E1,"?*")=5)*(COUNTIF(G1:L1,"?*")=6)*(COUNTIF(N1:P1,"?*")=3)=TRUE,"TRANSFER","")
=IF((COUNTIF(A1:E1,"<>")=5)*(COUNTIF(G1:I1,"<>")=3)*(COUNTIF(J1:L1,"")=3)*COUNTIF(N1:P1,"")=3,"SEND","")
=IF((COUNTIF(C1:E1,"")=3)*(COUNTIF(G1:I1,"")=3)*(COUNTIF(J1:L1,"<>")=3)*COUNTIF(N1:P1,"<>")=3,"RECEIVE","")
这里是嵌套的 IF 语句。
=IF((COUNTIF(A1:E1,"?*")=5)*(COUNTIF(G1:L1,"?*")=6)*(COUNTIF(N1:P1,"?*")=3)=TRUE,"TRANSFER",IF((COUNTIF(A1:E1,"<>")=5)*(COUNTIF(G1:I1,"<>")=3)*(COUNTIF(J1:L1,"")=3)*COUNTIF(N1:P1,"")=3,"SEND",IF((COUNTIF(C1:E1,"")=3)*(COUNTIF(G1:I1,"")=3)*(COUNTIF(J1:L1,"<>")=3)*COUNTIF(N1:P1,"<>")=3,"RECEIVE","")))
【讨论】:
谢谢!这无疑帮助我转向了正确的方向。与我的具体要求有关的一些小错误,但你的陈述是合理的。所以我根据自己的喜好调整了你的陈述 很高兴您能够对其进行修改以满足您的需求。只是两个音符。 ISODD 可能不是必需的。此外,如果您在单元格中有显示值的函数,“”将无法捕获它们。这就是“?*”的帮助。【参考方案2】:所以在 Nate 的帮助下,我想出了以下公式:
=IFS(ISODD((COUNTBLANK(A1:E1)=0)*(COUNTBLANK(G1:L1)=0)*(COUNTBLANK(N1:P1)=0)),"TRANSFER",
(ISODD((COUNTIF(A1:E1,"<>")=5)*(COUNTIF(G1:I1,"<>")=3)*(COUNTIF(J1:L1,"")=3)*COUNTIF(N1:P1,"")=3)),"SEND",ISODD((COUNTIF(C1:E1,"")=3)*(COUNTIF(G1:I1,"")=3)*(COUNTIF(J1:L1,"<>")=3)*(COUNTIF(N1:P1,"<>")=3)),"RECEIVE",true,"")
【讨论】:
以上是关于谷歌表格中带有 ifs、isblank 和 AND/OR 的数组公式的主要内容,如果未能解决你的问题,请参考以下文章