В Excel в декабре объявили революцию (пока в бете для платных подписчиков). Революция называется =LAMBDA(x,y...,expression)(x,y...) Ну а если просто, то это возможность создать именованную функцию без макросов, вижуалбейсика, жабаскрипта и прочих извращений - просто встроенными средствами Excel.
LAMBDA выступает как обертка, далее выражению вида =LAMBDA(x,y,exp) присваивается имя типа MyFunction - и этим именем можно пользоваться как функцией вида MyFunction(x,y). Суешь ей переменные, а она сама их обработает, не показывая инкапсулированную логику. Меняешь логику - меняются и все инстанции функции в модели.
Многолетняя мечта сбылась, и тридцати лет не прошло. Теперь вместо многократного дублирования хитровывернутых многоступенчатых функций пишем свои функции, а если задача усложняется - можем из именованных протофункций строить свои функции второго уровня. В LAMBDA даже и рекурсию добавили - на простейшем уровне можно эмулировать что-то вроде цикла while.
Конечно, было б еще круче, если б в Excel появился интерпретатор Python - вот тут бы мы разгулялись. Но то ли не додумались, то ли побоялись последствий - от безопасности до каннибализации собственного Power BI - но этого нам не предлагают.
Так, глядишь, и до динамического добавления и удаления рядов и колонок доживем.
https://support.microsoft.com/en-us/office/lambda-function-bd212d27-1cd1-4321-a34a-ccbf254b8b67