Рекурсия в Exel

  • Автор темы lamo4ok
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

lamo4ok

#1
Можно ли с помощью формул непосредственно на листе организовать рекурсию типа (если вообще формулами возможно составлять функции):


ВычислитьЦенуОпций(Строка) Цена

ДлинаСтроки = КолвоСимволовВСтроке(Строка);

Если ДлинаСтроки<>0 Тогда
ПозТекущегоПробела = НайтиПервыйПробелВстроке(Строка);
ТекущаяОпция = ТекстС ДлинаСтроки По ПозТекущегоПробела;
Строка = Строка - ТекущаяОпция;
ЦенаТекущейОпции = НайтиЦенуТекущейОпции(ТекущаяОпция);
ОбщаяЦена = ОбщаяЦена + ЦенаТекущейОпции;
ВычислитьЦенуОпций(Строка);
КонецЕсли;

Конец ВычислитьЦенуОпций()


использоваться будет для след. целей:
есть таблица, в одном из столбцов которой находятся строки типа "ЧЧВ ЫЫЫ ВВВ"
есть еще одна таблица, в которой каждые "ЧЧВ" и "ЫЫЫ" сопоставлены определенной цене
задача - в первой таблице заполнить столбец "ЦЕНА", которая как раз и расчитывается рекурсивной функцией ВычислитьЦенуОпций() (сразу оговорюсь, что обсуждаем именно создание функции формулами, а не мелочи типа как найти цену и вернуть ее в ЦенаТекущейОпции)

Если кто-то знает VBA - милости просим, правда тогда задача немного изменяется:
Как я понимаю, нужно будет сделать кнопку на листе, по которой будет перебираться весь столбец и по каждой строчке "ЧЧВ ЫЫЫ ВВВ" вызывать рекурсию. (наглею=)) в принципе, начинать перебор можно даже с текущей клетки и до конца столбца (так будет даже понятней)
 
Статус
Закрыто для дальнейших ответов.