假设我有一个简单的表
|| A | B | C | D | E | F | G
==============================
1 || 1 | 0 | | ? | 1 | 0 | 1
我想创建一个新行,其中每个值为1
或0
。逻辑是,如果单元格为空白或?
,则应为0
。
我最近的是
=ArrayFormula(if(A1:G1="?", 0, A1:G1))
这给了我
|| A | B | C | D | E | F | G
==============================
1 || 1 | 0 | | ? | 1 | 0 | 1
2 || 1 | 0 | | 0 | 1 | 0 | 1
但是,一旦我添加OR
来用
=ArrayFormula(if(or(A1:G1="?", isblank(A1:G1)), 0, A1:G1))
那我只能得到1个单元格:
|| A | B | C | D | E | F | G
==============================
1 || 1 | 0 | | ? | 1 | 0 | 1
2 || 1 | | | | | |
我在做什么错?还是有更好的方法来做到这一点?
答案 0 :(得分:1)
两种方式:
只需将其他条件放在value_is_false
位置
=ArrayFormula(if(A1:G1="?", 0, IF(ISBLANK(A1:G1), 0, A1:G1)))
使用+
表示OR。之所以可行,是因为将“ true”值评估为1
,将“ false”值评估为0
。因此,0+0=false
,1+0=true
。对于AND,您可以乘以... 0*0=false
,1*0=false
,1*1=true
。
=ArrayFormula(if((A1:G1="?")+(ISBLANK(A1:G1)), 0, A1:G1))