在ArrayFormula中使用IFS和datevalue的语法是什么?

时间:2019-05-09 23:44:12

标签: google-sheets array-formulas google-sheets-formula

我有一个带有日期栏的源表。在sheet2上,我尝试创建一个列,其中每个单元格包含一个数字。该数字来自使用IFS评估后转换源工作表上的日期。这是我的代码,当不与数组公式结合使用时,可以在每个单元格上工作:

=ifs(AND(Source!A2>DATEVALUE("05/06/2019"),Source!A2<=DATEVALUE("06/15/2019")),949,AND(Source!A2<=DATEVALUE("05/06/2019"),Source!A2>=DATEVALUE("04/01/2019")),900,Source!A2>DATEVALUE("06/15/2019"),999,true,)

但是,当我尝试合并arrayformula时遇到错误,指出IFS的Array参数的大小不同:

={"header name here";ArrayFormula(ifs(AND(Source!A2:A>DATEVALUE("05/06/2019"),Source!A2:A<=DATEVALUE("06/15/2019")),949,AND(Source!A2:A<=DATEVALUE("05/06/2019"),Source!A2:A>=DATEVALUE("04/01/2019")),900,Source!A2:A>DATEVALUE("06/15/2019"),999,true,))}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

ARRAYFORMULA不了解AND,因此您需要将其转换为0/1逻辑:

=ARRAYFORMULA(
 IF((Source!A2:A> DATEVALUE("05/06/2019")) * (Source!A2:A<=DATEVALUE("06/15/2019")), 949,
 IF((Source!A2:A<=DATEVALUE("05/06/2019")) * (Source!A2:A>=DATEVALUE("04/01/2019")), 900,
 IF((Source!A2:A> DATEVALUE("06/15/2019")), 999, ))))

0


替代方法: https://webapps.stackexchange.com/q/123729/186471