Изменение формулы (с последовательными относительными ссылками) в формулу массива, чтобы она работала с вводом форм Google - PullRequest
0 голосов
/ 23 ноября 2018

Как изменить следующую формулу в формулу массива, чтобы она работала даже при добавлении новых строк в формы Google?

=if(SUMPRODUCT($D5:$D7) < 1,"Bad","Good")

Справочная информация. Столбец D содержит значения ИСТИНА или ЛОЖЬ.Формула просто оглядывается назад, и если в строке 3 False, мне нужно, чтобы вывод был «Плохой».Это прекрасно работает, если я скопирую это. Но , этот лист связан с формой Google, и Google добавляет новую строку для новых ответов.

Для другой части листа я выяснил, что если я сделаю формулу массива, то формула массива вступит в силу, даже если Google вставит новую строку (не нужно копировать вниз).Пример того, что работает: =ArrayFormula(DAY($C2:C) = $A$1).Это работает от $ C2 до конца столбца C и работает со строками, вставленными формами Google.

Как сделать так, чтобы первая формула работала как вторая, при этом все еще оглядываясь на последних трех родственников?значения?

1 Ответ

0 голосов
/ 23 ноября 2018

Ну, прямой эквивалент будет

=ArrayFormula(if(A4:A="","",A4:A+A3:A+A2:A))

, но это не сработает - ему всегда нужно будет вставлять больше строк внизу листа.

=ArrayFormula(if(A4:A="","",A4:A+A3:A999+A2:A998))

работает, но только для определенного размера листа.

Вы можете посмотреть в будущее, как это:

ArrayFormula(if(A2:A="","",A2:A+A3:A+A4:A))

Более сложный способ обойти это - сделать vlookup в строкечисло, подобное этому:

=ArrayFormula(if(row(A2:A)<4,"",if(A2:A="","",A2:A+vlookup(row(A2:A)-2,{row(A2:A),A2:A},2,false)+vlookup(row(A2:A)-1,{row(A2:A),A2:A},2,false))))

(необходимо добавить операторы if, чтобы он сообщал «Хорошо» или «Плохо»)

=ArrayFormula(if(row(A2:A)<4,"",if(A2:A="","",IF(A2:A+vlookup(row(A2:A)-2,{row(A2:A),A2:A},2,false)+vlookup(row(A2:A)-1,{row(A2:A),A2:A},2,false),"Good","Bad"))))
...