Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2009, 08:12   #1
Palmer
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 10
По умолчанию сложение с условием

Здравствуйте! Если не сложно, помогите!
Необходимо выполнить сложение двух значений в строке до тех пор, пока итог не будет = или > заданного значения и скопировать строки со значениями = заданному, на другой лист.
Заранее благодарю.
Palmer вне форума Ответить с цитированием
Старый 17.12.2009, 08:20   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1. Где именно "в строке" находятся исходные значения для суммирования? Подряд, начиная с 1-го стодбца? Или как? Могут ли встречаться не числа? Что в этом случае делать?
2. Кто и как задает значение для сравнения?
3. Какие строки просматривать?
4. Прикрепите пример файла с данными и желаемым результатом.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 17.12.2009, 08:55   #3
Palmer
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 10
По умолчанию

Файлик вот. Заданное значение - год (предположим 2010 или любой другой), т.е. срок посадки складываем с периодом замены до тех пор пока значение не станет = заданному году, затем копируем значения совпавшие с заданным на другой лист (выход графика замены)
Вложения
Тип файла: rar График посадки.rar (7.8 Кб, 8 просмотров)
Palmer вне форума Ответить с цитированием
Старый 17.12.2009, 09:48   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Т.е. например, для 2-й строки: значение ячейки "C2" складываем со значением ячейки "D2", затем ищем полученный результат в этой же строке. Если находим - копируем ее на другой лист. Если нет - к имеющемуся результату еще раз прибавляем значение ячейки "D2" и снова ищем. И так для всех строк. Так? Если так, то у Вас в примере потребуется скопировать все строки. Или я не правильно понял?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 17.12.2009, 16:20   #5
Palmer
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 10
По умолчанию

Да, вы не совсем верно поняли. Мне необходимо, чтобы значение года посадки суммировалось с периодм до тех пор пока сумма не станет равна заданному году (например 2010). Если в процессе суммирования меется значение заданного года (2010), то строка копируется на другой лист, если значения при суммировании меньше или больше заданного периода, то процедура суммирования по данной строке прекращается.
Palmer вне форума Ответить с цитированием
Старый 17.12.2009, 16:24   #6
Palmer
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 10
По умолчанию

В прикрепленном файле я показала ручной механизм того, что хотелось бы видеть.
У меня получилось написать функцию:

' vStart - год посадки
' vEnd - год замены (нашем случае 2010г)
' vStep - периодичность пересадки (замены)
Function getNearest(vStart, vEnd, vStep)

vResult = vStart
While (vResult + vStep) < vEnd
vResult = vResult + vStep
Wend
getNearest = vResult


End Function

но она вычисляет значение < 2010 (заданного периода), а мне надо = заданный период. а копирование нужного итога на другой лист (если честно) я еще не пыталась писать, может что и получится у самой. Но с первой задачей никак не можется.
Palmer вне форума Ответить с цитированием
Старый 18.12.2009, 05:03   #7
Palmer
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 10
По умолчанию

Помогите! Пожалуйста!
Palmer вне форума Ответить с цитированием
Старый 18.12.2009, 05:58   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
' vEnd - год замены (нашем случае 2010г)
Не понятно, откуда мы взяли 2010? Где задается это число?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 18.12.2009, 06:47   #9
Palmer
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 10
По умолчанию

год задается в функции оператором vEnd

Цитата:
Сообщение от Palmer Посмотреть сообщение
' vStart - год посадки
' vEnd - год замены (нашем случае 2010г)
' vStep - периодичность пересадки (замены)
Function getNearest(vStart, vEnd, vStep)
Palmer вне форума Ответить с цитированием
Старый 18.12.2009, 06:56   #10
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Давайте уточним. Если мы делаем функцию, то она сможет вернуть полученное значение в ячейку, в которой она имеется. Не более того. Ни о каком перемещении строк на другой лист речи быть не может. Если же мы делаем макрос, то "год замены" потребуется либо жестко присвоить в коде макроса, либо запрашивать у пользователя при запуске макроса. Определитесь, чего Вы хотите.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с условием! lisa_hitray Microsoft Office Access 1 27.11.2009 22:29
Создание списков с условием lexx2030 Microsoft Office Excel 0 27.07.2009 20:04
Помогите с условием. Stager Общие вопросы C/C++ 4 13.01.2009 02:01
Помогите с Условием memoze Microsoft Office Excel 7 22.02.2008 15:23