Какой синтаксис для использования IFS и datevalue в ArrayFormula? - PullRequest
1 голос
/ 10 мая 2019

У меня есть исходный лист с колонкой дат. на листе 2 я попытался создать столбец, в котором каждая ячейка содержит номер. Число пришло из преобразования дат на исходном листе после оценки их с использованием 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, я получил сообщение о том, что аргументы Array для IFS имеют другой размер:

={"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 голосов
/ 10 мая 2019

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

...