У меня есть интервал времени 0 <t <T, и у меня есть куча функций, определенных на t
t f1(t) f2(f1(t), t) f3(f1, f2, t) ...
_____________________________________________
0 f1(0) f2(f1(0), 0) f3(f1, f2, 0) ...
0 f1(Δt) f2(f1(Δt), Δt) f3(f1, f2, Δt) ...
...
T f1(T) f2(f1(0), T) f3(f1, f2, T) ...
Если я зафиксирую определенный временной шаг Δt, я смогу организовать свои вычисления в рабочем листе, используя параметры, определенные где-то еще, и в конечном итоге я смогу построить график некоторых результатов в зависимости от 0 < t < T.
OTOH, если, в свою очередь, временной шаг Δt зависит от этих внешних параметров, я не знаю, как изменить нет. строк в расчетном листе.
Интересно, можно ли использовать какие-то сценарии, но мой уровень написания сценариев для Google-таблиц ниже нуля :-(
Следуя этому хорошему совету я могу генерировать временной массив на лету, а теперь я также показываю макет того, что я хочу сделать, чтобы снизить уровень абстракции моего вопроса...
Я использовал =arrayformula(if (C2:C,cos(C2:C),"")),
как предложено здесь, добавив нулевую строку, чтобы избежать отображения FALSE,
но остается небольшая проблема, а именно нет отображения, когда в столбце t стоит 0,
но когда я пытаюсь решить проблему, используя =arrayformula(if (isnumber(C2:C),cos(C2:C),"")), я получаю следующее:
к моему полному удовлетворению.
Хорошее место - я соответствующим образом обновил свой ответ. AFAIK, функция SEQUENCE в прошлом не принимала нецелое число ни для параметров начала, ни для шага (отсюда и мой первоначальный ответ), но это поведение, похоже, было изменено.





Трудно дать конкретные рекомендации, учитывая уровень абстракции вашего вопроса, но должна быть возможность динамически изменять количество возвращаемых строк, используя простые формулы без сценариев. Для вашего столбца t, если вы знаете T и Δt (и они имеют одинаковые единицы измерения), то =arrayformula(sequence(T/Δt)*Δt)) сгенерирует соответствующее количество строк (очевидно, вам нужно будет заменить T и Δt их фактическими значениями или ссылками на ячейки, содержащие фактические значения) .
Что касается столбцов функций, вы захотите ограничить их числом заполненных строк в столбце t, и существуют различные подходы для эффективного выполнения этого с помощью формул массива, но, опять же, сложно дать конкретные рекомендации, учитывая уровень абстракции.
РЕДАКТИРОВАТЬ после приведенного примера (при условии, что таблица примеров находится в верхнем левом углу вашего листа):
Для столбца t используйте =sequence(A2/B2,1,B2,B2) в C2.
Для столбца cos(t) используйте =arrayformula(if (isnumber(C2:C),cos(C2:C),)) в D2.
Для столбца t+cos²(t) используйте =arrayformula(if (isnumber(C2:C),C2:C+D2:D^2,)) в E2.
Н.Б. Если вы вычисляете множество функций во многих строках, используемый здесь подход для ограничения функций нужным количеством строк может быть неоптимальным с точки зрения времени расчета (хотя он все равно должен работать).
Теперь оно менее абстрактное... Надеюсь на это.
Ваши предложения, как и прежде, направили меня на правильный путь, но результат оказался не совсем правильным (см. мое последнее редактирование), потому что нужно использовать isnumber, чтобы различать нулевые ячейки и пустые ячейки. Если вы исправите глюки, я смогу принять ваш ответ.
Я обновил ответ по запросу, чтобы учесть t=0.
смотри, нет формулы массива
=sequence(N+1, 1, 0, Δt)