Страницы: 1
RSS
Уменьшать значение ячейки до выполнения условия
 
Добрый день, уважаемые форумчане. В приложенном файлике в столбце H
у меня вышла формула, которая практически полностью делает все что нужно
=ЕСЛИ(D5>=3;0;ЕСЛИ(ЕСЛИ(E5-D5>0;E5-D5;0)>=3;3;ЕСЛИ(E5-D5>0;E5-D5;0)))   -  эта формула в ячейке H5

но нужно добавить в нее еще проверку
Если сумма D5+H5>3 и Если H5>0 то уменьшаем значение в H5-1 до тех  пор пока D5+H5<=3 или H5=0

проблема в том, что эксель отказывается ссылаться на ту ячейку в которой прописана первая формула  (в H5) (( это тупик...
помогите дополнить формулу или прописать макрос. Макросом конечно, предпочтительней, логику прописал. Ну вот с синтаксисом языка проблемы...
Было бы супер еще перевести Если сумма D5+H5>3 и Если H5>0 то уменьшаем значение в H5-1 до тех  пор пока D5+H5<=3 или H5=0 на VBA.
Спасибо, очень надеюсь на Вашу помощь.
Изменено: Zanzara - 26.03.2018 16:17:24 (была неточность)
 
Как понять это условие?
Цитата
Zanzara написал: или GH5=0
GH5 - это ячейка "GH5", но я предполагаю, что Вы имели ввиду что-то другое. Может быть Вы имели ввиду: уменьшать до тех пор, пока в G5 или H5 не станет ноль, или что-то еще в этом же духе?
 
Цитата
Karataev написал: GH5 - это ячейка
Прошу прощения, изначально хотел значения в G5, а потом формулу в H5 в итоге "недоредактировал" :)

Цитата
Karataev написал: пока в G5 или H5 не станет ноль, или что-то еще в этом же духе?
Нужно что бы сумма D5 и H5 - не превышала 3. Если же превышает то уменьшать значение именно в H5 пока не выполнится условие сумма D5+H5 меньше или равно 3. При этом если вовремя уменьшения значения H5 дойдет до значения 0. То H5 = 0 и переходим к следующей ячейке H6 ...  и так до конца таблицы. В моём примере красным выделил те ячейки, где сумма  D5+H5 > 3....  Для того что бы сделать доп проверки, нужно ссылаться на результат уже в H5, но эксель при этом ругается ((
 
Уменьшать нужно именно на 1? Может быть стразу подсчитать, на сколько надо уменьшить H5, чтобы стало 3:
H5 = 3 - D5
 
Сумма D5+H5 в Н5 может быть только 1 2 3 если не эти числа то Н5 = 0
 
Цитата
Zanzara написал: Сумма D5+H5 в Н5
Вы неточно пишите - в H5 нет суммы D5+H5. В H5 есть расчет, который делается Вашей формулой. Поэтому перефразируйте пост 5, иначе возникает непонимание.
 
В H5 уже прописана формула которая выдает результат вычислений.......... далеее нужно проверить
Получив результат расчета D5+H5, мы имеем результат в виде числа
дальше проверяем этот результат на соответсвие условию
если результат вычислений D5+H5 от 0 до 3 значит его вписываем в ячейку H5
если результат вычислений D5+H5 больше 3 значит уменьшаем значение (результат вычислений формулы в H5 - 1 ), делаем это до тех пор пока не удалетворится условие сумма значений в D5 и H5 от 0 до 3.
Но если до уменьшаем значение в H5 до 0, значит просто к H5  присваем значение 0 и переходим к следующей строке
 
Zanzara, еще раз повторюсь. Зачем уменьшать на 1 и проверять, стало меньше или нет 3. Ведь можно сразу рассчитать, сколько должно быть в H5, чтобы в сумме D5 + H5 получилось 3.
 
сумма D5 + H5  НЕ должна превышать 3. но там могут быть значения 1  ...  2  или 3  в зависимости от пред идущего расчета по формуле в h5 и пост проверки, которую я не могу организовать. Подозреваю что результат вычисления в H5 нужно поместить в переменную а дальше использовать цикл Do Until или Do While. У меня сложность с синтаксисом макроса. Не понимаю как промежуточный результат с ячейки добавить в переменную, а дальше прокручивать его в цикле до наступления условия и результат выводить в H5. А потом тоже самое делать в следующей строчке до конца таблицы.
 
Формула может проверить: если D5+H5<=3, то оставить как есть в H5. Если же D5+H5>3, то формула может сразу рассчитать, сколько оставить в H5, чтобы сумма D5 + H5 стала равняться 3. То есть для непосвященных в Вашу задачу нет необходимости уменьшать на 1. Но если Вам это действительно надо, то это другое дело. Вот я и пытаюсь выяснить, действительно ли Вам надо уменьшать на 1, может быть Вы пока чего-то не понимаете.
Изменено: Karataev - 28.03.2018 19:15:41
 
та формула что уже есть в H5 написанная мною, делает все кроме проверки, в котором требуется результат вычисления в H5 сложить с D5 и в случае не удовлетворения "саму себя" Н5 уменьшать.... это формулой я сделать не могу (( помогите макросом плз
Изменено: Zanzara - 28.03.2018 19:44:32
 
Я понимаю, что Вы не можете сделать. Я задаю Вам уточняющие вопросы. Посмотрите пост 10.
 
Да, нужно уменьшать на -1 пока не наступит 2 условия. Результат вычислений по формуле в H5 > 0 и сумма значения D5 + результат вычислений по формуле в H5 > 3. Если доуменьшаем по -1 в Н5 до 0 то в H5 присваивается 0.   Это к примеру если в D5=6 а H5=0 то их сумма 6, но так как Н5 уже 0, то в H5 присваивается 0. Второй пример. D5=2 а H5=3 сумма 5, уменьшаем H5 на 1 и повторяем D5=2 а H5=2, уменьшаем H5 на 1 и повторяем D5=2 а H5=1  О, D5+H5 = 3!!!.... принимаемся к следующей строчке )))
 
Все сделал по условиям, но в 23 и 24 строке не соответствует контрольному результату???
Проверьте.
 
Zanzara, а в чем вообще смысл уменьшать на 1, а затем проверять? Почему сразу нельзя присвоить H5 нужное значение, если D5+H5>3? Можете это объяснить, или Вы никак не можете понять, что я хочу уточнить?
 
Цитата
Karataev написал:
а в чем вообще смысл уменьшать на 1, а затем проверять? Почему сразу нельзя присвоить H5 нужное значение
Присоединяюсь - нет никакого смысла.
 
Цитата
skiv17 написал:
Все сделал по условиям, но в 23 и 24 строке не соответствует контрольному результату???Проверьте.
Идеально!! Именно то что и хотел. Спасибо большое, очень помог. А в 23 и 24 строке, делая контролку... я сам допустил ошибку, но Ваш макрос все делает правильно.  
Страницы: 1
Наверх