в документации функции arrayformula
Google Таблиц говоритARRAYFORMULA в Google Таблицах с вложенными массивами
Включает отображение значений, возвращаемых из формулы массива в несколько строк и/или столбцов и использование не-массива функции с массивами.
Это хорошо работает в следующем случае, который просто делит все значения в столбце на пять:
=arrayformula(A2:A/5)
Теперь я хочу, чтобы нижняя граница результат в каждой строке на 0, т.е. в строке n Я хочу вычислить max(An, 0)
. Это моя нерабочая попытка:
=arrayformula(max(A2:A/5, 0))
max
сами будет отлично работать без использования arrayformula
, то есть, если я заполняю max(A2/5, 0)
вниз все строки, которые я получаю именно то, что я хочу. Я хочу, чтобы функция max
работала на двух одиночных значениях, единственное значение, найденное в A n и константа 0. Причина, по которой подход arrayformula
не работает, заключается в том, что max
«крадет» диапазон, суммируя весь диапазон A2:A
в один номер. Таким образом, arrayformula
работает только с этим номером и полностью игнорирует диапазон A2:A
, следовательно, производит одинаковое значение для всех ячеек.
Как сделать arrayformula
интерпретировать диапазон A2:A
, или, вернее, как предотвратить функцию max
от этого и заставить ее работать с двумя отдельными значениями?
(я могу решить эту проблему с if
функции вместо этого, но это не кажется особенно элегантно и требует много повторения кода, в частности, так как моя реальная проблема использует более активное участие арифметика и сочетание min
и max
.)
Что вы подразумеваете под «нижней границей»? Просьба привести пример списка входных значений и списка желаемого вывода. – daniel
По нижней границе означает, что результат должен быть не менее 0. Следовательно, 'max'. Разделение на 5 является просто примером, чтобы обеспечить что-то значимое для arrayformula. Вход = 10 -> Выход = 2. Input = -10 -> Output = 0. –
Просьба привести пример, который выглядит так: input = {1, 2, -3, 5, 10, 0, -1}, output = {1,2,5,10} , Похоже, что вам нужна функция 'filter()' – daniel