在Google表格中范围内的每个单元格上执行if语句

时间:2018-08-01 00:15:41

标签: google-sheets

假设我有一个简单的表

  || A | B | C | D | E | F | G
==============================
1 || 1 | 0 |   | ? | 1 | 0 | 1

我想创建一个新行,其中每个值为10。逻辑是,如果单元格为空白或?,则应为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 |   |   |   |   |   |  

我在做什么错?还是有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

两种方式:

  1. 只需将其他条件放在value_is_false位置

    =ArrayFormula(if(A1:G1="?", 0, IF(ISBLANK(A1:G1), 0, A1:G1)))
    
  2. 使用+表示OR。之所以可行,是因为将“ true”值评估为1,将“ false”值评估为0。因此,0+0=false1+0=true。对于AND,您可以乘以... 0*0=false1*0=false1*1=true

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