Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Действие при смене возраста в заданный период дат - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Действие при смене возраста в заданный период дат (Макросы/Sub)
Действие при смене возраста в заданный период дат
aleksbar Дата: Вторник, 10.03.2020, 12:08 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Условие такие. С 10 до 15 лет включительно расход на ребенка составляет 100 рублей за день, а с 16 до 21 – 150. Нужно указать дату рождения и период обучения, а скрипт бы определял сколько дней человек обучался в том или ином возрасте, ну и умножал количество дней на ставку.
Например. ДР ребенка 10.01.2001. В период с 01.01.2013 по 10.04.2013 ему было 12 лет и он обучался 100 дней (365 дней в году). Здесь всё просто, потому что период обучения в пределах одного года, а если он обучался с 01.01.2013 по 31.12.2019? То есть в этот период часть дней посчитается по 100 рублей в день, а в 2017 году ему будет 16 лет и будет считаться по 150 в день.
При этом, для расчета возраста принимается не дата рождения, а год, в котором ему исполнилось сколько-то лет. То есть, если ребенок 10.01.2001, то 2017 год будет весь считаться по 150, а не 10 дней по 100, а остальные – по 150.
Сейчас это приходится вручную делить период по годам, определять високосность, чтобы не ошибиться. Допустим, 01.01.2016 по 10.04.2017. Беру, считаю весь 2016 по 100, затем смотрю дни в 2017 и считаю их по 150.
А хотел бы просто указать дату рождения и период. Может кто-то делал что-то похожее или идеей поделится?
 
Ответить
СообщениеДобрый день!
Условие такие. С 10 до 15 лет включительно расход на ребенка составляет 100 рублей за день, а с 16 до 21 – 150. Нужно указать дату рождения и период обучения, а скрипт бы определял сколько дней человек обучался в том или ином возрасте, ну и умножал количество дней на ставку.
Например. ДР ребенка 10.01.2001. В период с 01.01.2013 по 10.04.2013 ему было 12 лет и он обучался 100 дней (365 дней в году). Здесь всё просто, потому что период обучения в пределах одного года, а если он обучался с 01.01.2013 по 31.12.2019? То есть в этот период часть дней посчитается по 100 рублей в день, а в 2017 году ему будет 16 лет и будет считаться по 150 в день.
При этом, для расчета возраста принимается не дата рождения, а год, в котором ему исполнилось сколько-то лет. То есть, если ребенок 10.01.2001, то 2017 год будет весь считаться по 150, а не 10 дней по 100, а остальные – по 150.
Сейчас это приходится вручную делить период по годам, определять високосность, чтобы не ошибиться. Допустим, 01.01.2016 по 10.04.2017. Беру, считаю весь 2016 по 100, затем смотрю дни в 2017 и считаю их по 150.
А хотел бы просто указать дату рождения и период. Может кто-то делал что-то похожее или идеей поделится?

Автор - aleksbar
Дата добавления - 10.03.2020 в 12:08
igrtsk Дата: Вторник, 10.03.2020, 12:13 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 314
Репутация: 50 ±
Замечаний: 0% ±

Excel 2016
Может кто-то делал что-то похожее или идеей поделится?

Может и поделится, если кто-то, в свою очередь, не сочтет за труд прочесть правила форума.


Инструктор по применению лосей в кавалерийских частях РККА
 
Ответить
Сообщение
Может кто-то делал что-то похожее или идеей поделится?

Может и поделится, если кто-то, в свою очередь, не сочтет за труд прочесть правила форума.

Автор - igrtsk
Дата добавления - 10.03.2020 в 12:13
aleksbar Дата: Вторник, 10.03.2020, 12:20 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Может и поделится, если кто-то, в свою очередь, не сочтет за труд прочесть правила форума.

Я никого не хотел как-то задеть, но мне показалось, я все сделал по правилам. Файла - примера у меня нет, потому что я считаю все построчно простыми формулами. А в других темах искал, даже на других форумах. Тем про исчисление дней и дат полно, но что-то, что мне поможет, я не нашел.
 
Ответить
Сообщение
Может и поделится, если кто-то, в свою очередь, не сочтет за труд прочесть правила форума.

Я никого не хотел как-то задеть, но мне показалось, я все сделал по правилам. Файла - примера у меня нет, потому что я считаю все построчно простыми формулами. А в других темах искал, даже на других форумах. Тем про исчисление дней и дат полно, но что-то, что мне поможет, я не нашел.

Автор - aleksbar
Дата добавления - 10.03.2020 в 12:20
pechkin Дата: Среда, 11.03.2020, 10:28 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 49 ±
Замечаний: 0% ±

2003
Здравствуйте! Какое-то решение формулами. Наверное тему нужно перенести
К сообщению приложен файл: 9952981.xls (24.0 Kb)


Сообщение отредактировал pechkin - Четверг, 12.03.2020, 09:16
 
Ответить
СообщениеЗдравствуйте! Какое-то решение формулами. Наверное тему нужно перенести

Автор - pechkin
Дата добавления - 11.03.2020 в 10:28
aleksbar Дата: Среда, 11.03.2020, 12:15 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте! Какое-то решение формулами. Наверное тему нужно перенести

Здравствуйте! Спасибо. Правда у меня при подстановке более ранней даты рождения значения дней становятся отрицательными.


На счет реализации формулами, если это проще, чем VBA, наверное, не принципиально. Просто мне для себя интересно было бы понять решение через VBA. Но я готов прислушаться к мнению знающих людей :)
 
Ответить
Сообщение
Здравствуйте! Какое-то решение формулами. Наверное тему нужно перенести

Здравствуйте! Спасибо. Правда у меня при подстановке более ранней даты рождения значения дней становятся отрицательными.


На счет реализации формулами, если это проще, чем VBA, наверное, не принципиально. Просто мне для себя интересно было бы понять решение через VBA. Но я готов прислушаться к мнению знающих людей :)

Автор - aleksbar
Дата добавления - 11.03.2020 в 12:15
K-SerJC Дата: Среда, 11.03.2020, 15:28 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 487
Репутация: 86 ±
Замечаний: 0% ±

Excel 2013
решение через VBA

Доброго дня!!!
так?
К сообщению приложен файл: aleksbar.xlsb (18.5 Kb)


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJC - Среда, 11.03.2020, 15:29
 
Ответить
Сообщение
решение через VBA

Доброго дня!!!
так?

Автор - K-SerJC
Дата добавления - 11.03.2020 в 15:28
aleksbar Дата: Среда, 11.03.2020, 17:13 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
так?

Добрый день!
Мне кажется, ближе, чем я когда-либо был :)
Чтобы было нагляднее, я поставил обе ставке по 1, чтобы понять, как система считает дни.
В Вашем скрипте вышло так

Потом я посчитал всё руками по старинке. Единственное отличие, что у меня нет стоимости дня, а я отталкиваюсь от стоимости года (25000 и 50000 вместо 100 и 150). Но это не влияет на исчисление дней. И у меня получается на 4 дня больше.
А еще проблема, что я считаю формулами, а мы тут про VBA. Извините, пытаюсь докопаться до истины. Файл с расчетом прилагаю.
К сообщению приложен файл: 3059626.xlsx (13.9 Kb)
 
Ответить
Сообщение
так?

Добрый день!
Мне кажется, ближе, чем я когда-либо был :)
Чтобы было нагляднее, я поставил обе ставке по 1, чтобы понять, как система считает дни.
В Вашем скрипте вышло так

Потом я посчитал всё руками по старинке. Единственное отличие, что у меня нет стоимости дня, а я отталкиваюсь от стоимости года (25000 и 50000 вместо 100 и 150). Но это не влияет на исчисление дней. И у меня получается на 4 дня больше.
А еще проблема, что я считаю формулами, а мы тут про VBA. Извините, пытаюсь докопаться до истины. Файл с расчетом прилагаю.

Автор - aleksbar
Дата добавления - 11.03.2020 в 17:13
pechkin Дата: Четверг, 12.03.2020, 09:18 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 49 ±
Замечаний: 0% ±

2003
Здравствуйте! Подкорректировал формулу в предидущем посте.
 
Ответить
СообщениеЗдравствуйте! Подкорректировал формулу в предидущем посте.

Автор - pechkin
Дата добавления - 12.03.2020 в 09:18
aleksbar Дата: Четверг, 12.03.2020, 17:28 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем большое спасибо за отзывчивость, помощь и идеи! Вопрос снимаю.
 
Ответить
СообщениеВсем большое спасибо за отзывчивость, помощь и идеи! Вопрос снимаю.

Автор - aleksbar
Дата добавления - 12.03.2020 в 17:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Действие при смене возраста в заданный период дат (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!