Google sheets 对Google工作表中范围内的每个单元格执行if语句

Google sheets 对Google工作表中范围内的每个单元格执行if语句,google-sheets,Google Sheets,假设我有一张像 || 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 ============================

假设我有一张像

  || 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
但是只要我添加一个
来检查空格

=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 |   |   |   |   |   |  
我做错了什么?或者有更好的方法吗?

两种方法:

  • 只需将另一个条件放在
    值\u is\u false
    位置即可

    =ArrayFormula(if(A1:G1="?", 0, IF(ISBLANK(A1:G1), 0, A1:G1)))
    
  • 使用
    +
    表示或。这是因为“真”值计算为
    1
    ,“假”值计算为
    0
    。所以,
    0+0=false
    1+0=true
    。对于和,将…
    0*0=false
    1*0=false
    1*1=true

    =ArrayFormula(if((A1:G1="?")+(ISBLANK(A1:G1)), 0, A1:G1))