У меня есть другой вопрос из области теории, бизко к функции ЕСЛИ. Но! Вопрос для многих практических задач интересный. Бесспорно Excel - мощный инструмент для вычислений. Но в задачах математического моделирования часто необходимо реализовать циклический алгоритм. Пример. Численное решение уравнения. Подставляем в формулу значения аргумента (изначально задаем интервал значений аргумента, на котором с некоторым шагом вычисляется значение функции), находим интервал из двух соседних значений, содержащий решение, счиаем величину "невязки". Если она превышает минимум, интервал разбивается на меньшие, цикл повторяется до тех пор, пока "невязка" не войдёт в ТУ. С моими знаниями можно сделать лишь примитивное решение для подобных задач - прописать некоторое конечное число циклов. Во-первых, это топорное, некрасивое решение. Во-вторых, сколько бы циклов вручную не было прописано, реальная задача може быть такой, что их будет недостаточно. До недавнего времени был уверен, что циклические алгоритмы excel в принципе не поддеррживает, но один товарищ мне стал доказывать, что варианты их создания есть (но он уже не помнит, как делается, было давно и неправда:)). Кто-нибудь компетентен в этом вопросе?
У меня есть другой вопрос из области теории, бизко к функции ЕСЛИ. Но! Вопрос для многих практических задач интересный. Бесспорно Excel - мощный инструмент для вычислений. Но в задачах математического моделирования часто необходимо реализовать циклический алгоритм. Пример. Численное решение уравнения. Подставляем в формулу значения аргумента (изначально задаем интервал значений аргумента, на котором с некоторым шагом вычисляется значение функции), находим интервал из двух соседних значений, содержащий решение, счиаем величину "невязки". Если она превышает минимум, интервал разбивается на меньшие, цикл повторяется до тех пор, пока "невязка" не войдёт в ТУ. С моими знаниями можно сделать лишь примитивное решение для подобных задач - прописать некоторое конечное число циклов. Во-первых, это топорное, некрасивое решение. Во-вторых, сколько бы циклов вручную не было прописано, реальная задача може быть такой, что их будет недостаточно. До недавнего времени был уверен, что циклические алгоритмы excel в принципе не поддеррживает, но один товарищ мне стал доказывать, что варианты их создания есть (но он уже не помнит, как делается, было давно и неправда:)). Кто-нибудь компетентен в этом вопросе?Коляба
Сообщение отредактировал Коляба - Суббота, 16.02.2013, 21:42
Матрёна, на VBA раскрасьте синим цветом слово "Привет", а красным слово "друг" в ячейке А1, в которой находится формула =А2&В2 (в А2 находится слово "Привет", а в В2 слово "друг" ) с сохранением формулы (что бы она была там всегда, без перезаписи)
Цитата (Матрёна)
В VBA - ВСЁ, ЧТО ХОЦЦА!
Матрёна, на VBA раскрасьте синим цветом слово "Привет", а красным слово "друг" в ячейке А1, в которой находится формула =А2&В2 (в А2 находится слово "Привет", а в В2 слово "друг" ) с сохранением формулы (что бы она была там всегда, без перезаписи)Serge_007
Легко решается в VBA. Возможно решение и формулой (формулами), но сложнее.
Ну, значит положительный ответ принципиально есть. Попробую найти самостоятельно. Честно говоря, трудно представляю, какие формулы могут заставить выполнять повторное вычисление в одних и тех же ячейках (менять значения аргументов в формулах) без дополнительных действий пользователя. Ладно, ещё подумаем над этим...
Цитата (Michael_S)
Легко решается в VBA. Возможно решение и формулой (формулами), но сложнее.
Ну, значит положительный ответ принципиально есть. Попробую найти самостоятельно. Честно говоря, трудно представляю, какие формулы могут заставить выполнять повторное вычисление в одних и тех же ячейках (менять значения аргументов в формулах) без дополнительных действий пользователя. Ладно, ещё подумаем над этим...Коляба
трудно представляю, какие формулы могут заставить выполнять повторное вычисление в одних и тех же ячейках (менять значения аргументов в формулах) без дополнительных действий пользователя
трудно представляю, какие формулы могут заставить выполнять повторное вычисление в одних и тех же ячейках (менять значения аргументов в формулах) без дополнительных действий пользователя
Вот вам простейший циклический пример - решение в Excel стационарной двумерной задачи теплопроводности в плоской пластине при заданных граничных температурах (случайно я когда-то по образованию теплофизик).
Вдоль двух границ задана температура 100 градусов (пусть Цельсия) и вдоль двух других 0 градусов. Конечно-разностный шаблон описывающего задачу дифференциального уравнения в частных производных выглядит в данном случае очень просто: температура в узле (ячейке) внутри пластины (не на границе - там константы) равна среднеарифметическому значению четырех соседних узлов: слева, справа, сверху, снизу ("крест"). В контексте Excel это формула для ячейки B2: =(A2+C2+B1+B3)/4. Копируем ее в диапазон внутренних узлов пластины B2:K21 и наслаждаемся итерационным расчетом.
Для чистоты эксперимента можно стереть формулы из указанного диапазона в файле и ввести их заново, скопировав формулу из B2. Должна быть включена опция (говорю по интерфейсу 2007) "Включить итеративные вычисления" (круглая кнопка \ Параметры Excel \ Формулы).
Вот вам простейший циклический пример - решение в Excel стационарной двумерной задачи теплопроводности в плоской пластине при заданных граничных температурах (случайно я когда-то по образованию теплофизик).
Вдоль двух границ задана температура 100 градусов (пусть Цельсия) и вдоль двух других 0 градусов. Конечно-разностный шаблон описывающего задачу дифференциального уравнения в частных производных выглядит в данном случае очень просто: температура в узле (ячейке) внутри пластины (не на границе - там константы) равна среднеарифметическому значению четырех соседних узлов: слева, справа, сверху, снизу ("крест"). В контексте Excel это формула для ячейки B2: =(A2+C2+B1+B3)/4. Копируем ее в диапазон внутренних узлов пластины B2:K21 и наслаждаемся итерационным расчетом.
Для чистоты эксперимента можно стереть формулы из указанного диапазона в файле и ввести их заново, скопировав формулу из B2. Должна быть включена опция (говорю по интерфейсу 2007) "Включить итеративные вычисления" (круглая кнопка \ Параметры Excel \ Формулы).Gustav
Gustav, спасибо, интересный пример. Даже число итераций можно задавать, как оказалось. Значит по идее и мою задачу можно решить как-то, надо чуть-чуть подумать. А мы с Вами практически коллеги: когда-то ТД и ТП тоже изучал достаточно большой курс на кафедре авиационных двигателей;)
Gustav, спасибо, интересный пример. Даже число итераций можно задавать, как оказалось. Значит по идее и мою задачу можно решить как-то, надо чуть-чуть подумать. А мы с Вами практически коллеги: когда-то ТД и ТП тоже изучал достаточно большой курс на кафедре авиационных двигателей;)Коляба