【问题标题】:How to create an Array Formula with AND如何使用 AND 创建数组公式
【发布时间】:2020-10-09 03:17:00
【问题描述】:

我在这里遇到了我的工作簿中的一个问题。我在公式中使用IF(AND()) 来查找两个值之间的范围。由于我的工作表很大,我必须从上到下拖动公式,并且有可能有人不小心删除了公式。

你能帮我制作一个数组公式,以便我可以锁定顶部的单元格吗?我希望这会让我的工作表快一点。我这里有一个示例表,我可以在其中将“If & And”公式拖到 B8。

https://docs.google.com/spreadsheets/d/1Wy7ilXvSv7eY27kZpuiIax6XRKbZKs1bUS5pzgtOOkM/edit#gid=0

谢谢

【问题讨论】:

    标签: google-sheets google-sheets-formula


    【解决方案1】:

    问题是AND 不喜欢玩范围。幸运的是,您可以使用算术运算符来解决这个问题:

    =ArrayFormula(IF(A3:A="","",
      IF((A3:A>=0)*(A3:A<=10),5,
      IF((A3:A>=11)*(A3:A<=19),4,
      IF((A3:A>=20)*(A3:A<=39),3,
      IF((A3:A>=40)*(A3:A<=59),2,
      IF((A3:A>=60)*(A3:A<=79),1,
      IF((A3:A>=80)*(A3:A<=99),0,
      ""))))))
    ))
    

    简单规则:

    • AND -> 乘法
    • OR -> 加法

    只需确保将比较用括号括起来,否则操作顺序会导致它失败。

    当然,如果间隔有很好的模式,你总是可以使用某种阶跃函数公式来得到你想要的,就像这里。

    【讨论】:

      【解决方案2】:

      如果查找范围在另一张纸上,我倾向于使用 Vlookup:

      =ArrayFormula(if(A3:A="","",vlookup(A3:A,Lookup!A1:B10,2)))
      

      或在公式本身中:

      =ArrayFormula(if(A3:A="","",vlookup(A3:A,{0,5;11,4;20,3;40,2;60,1;80,0;100,"***"},2)))
      

      这是查找表:

      【讨论】: