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

Вход

Регистрация

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

 

= Мир MS Excel/Распределение сумм оплат в определенной последовательности - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Распределение сумм оплат в определенной последовательности
Spirtuoz Дата: Понедельник, 27.01.2025, 20:51 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Добрый день.

Подскажите, пожалуйста, как сделать макрос/формулу, чтобы определенное число распределялось между суммами задолженности в определенном порядке и в определенной сумме?

Приведу пример (прикрепил файл). У нас есть 2 суммы, полученные по двум проектам: Проект А = 300 руб., Проект Б = 200 руб. Полученные средства необходимо распределить по договорам, содержащим остаток долга. Причем распределить в определенной последовательности, которая задана заранее (см. раздел "Справочник"). Надо таким образом построить макрос/формулу, чтобы система в каждом отдельно взятом проекте правильно выбирала последовательность гашения долга и гасила не больше, чем есть долга на конец периода, а если возникает остаток, гасила следующий по очередности долг. При этом, порядок гашения задолженности может измениться, хотелось бы иметь возможность менять константы при необходимости. Как проектов, так и договоров может быть больше (10-20), пример на 3 договора в каждом из 2 проектов условный.

Как -то в голову самому не приходят возможности решить задачу с помощью макроса/формулы. Если у кого-то есть идеи, примеры аналогичных задач, буду очень благодарен за помощь!
К сообщению приложен файл: primer_raspredelenie.xlsx (9.9 Kb)
 
Ответить
СообщениеДобрый день.

Подскажите, пожалуйста, как сделать макрос/формулу, чтобы определенное число распределялось между суммами задолженности в определенном порядке и в определенной сумме?

Приведу пример (прикрепил файл). У нас есть 2 суммы, полученные по двум проектам: Проект А = 300 руб., Проект Б = 200 руб. Полученные средства необходимо распределить по договорам, содержащим остаток долга. Причем распределить в определенной последовательности, которая задана заранее (см. раздел "Справочник"). Надо таким образом построить макрос/формулу, чтобы система в каждом отдельно взятом проекте правильно выбирала последовательность гашения долга и гасила не больше, чем есть долга на конец периода, а если возникает остаток, гасила следующий по очередности долг. При этом, порядок гашения задолженности может измениться, хотелось бы иметь возможность менять константы при необходимости. Как проектов, так и договоров может быть больше (10-20), пример на 3 договора в каждом из 2 проектов условный.

Как -то в голову самому не приходят возможности решить задачу с помощью макроса/формулы. Если у кого-то есть идеи, примеры аналогичных задач, буду очень благодарен за помощь!

Автор - Spirtuoz
Дата добавления - 27.01.2025 в 20:51
Hugo Дата: Понедельник, 27.01.2025, 21:14 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3745
Репутация: 797 ±
Замечаний: 0% ±

365
Spirtuoz, Добрый день.
Формулой думаю или не сделать, или очень сложно, и всё равно затем нужно будет вручную или макросом менять формулы на результат.
А вот макросом не сложно, и думаю куча вариантов решения.
Я бы делал на словаре (ну и массивах раз там много данных):
1. конечно запоминаем полученные суммы, можно в словаре каждому проекту.
2. пробегаем по таблице остатков и запоминаем в словаре координаты строк договоров
3. сортируем массив справочника по порядку гашения
4. цикл по этому справочнику - из словаря берём что и куда, далее арифметика: вычесть, поместить, запомнить новый остаток суммы
Дело только набрать код. Но думаю на практике нужно все 3 таблицы разнести по трём листам - будет проще.
Со словарями работали? Сортировку в код можно добавить готовым модулем, найти в сети или бота попросить написать.
А если работаете на МАКе - там словарей нет, тогда нужно усложнять логику, или искать где-то класс для замены словаря на коллекции для маков, есть такой...

P.S. Добавил файл с макросом
К сообщению приложен файл: primer_raspredelenie.xlsm (23.7 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Понедельник, 27.01.2025, 23:47
 
Ответить
СообщениеSpirtuoz, Добрый день.
Формулой думаю или не сделать, или очень сложно, и всё равно затем нужно будет вручную или макросом менять формулы на результат.
А вот макросом не сложно, и думаю куча вариантов решения.
Я бы делал на словаре (ну и массивах раз там много данных):
1. конечно запоминаем полученные суммы, можно в словаре каждому проекту.
2. пробегаем по таблице остатков и запоминаем в словаре координаты строк договоров
3. сортируем массив справочника по порядку гашения
4. цикл по этому справочнику - из словаря берём что и куда, далее арифметика: вычесть, поместить, запомнить новый остаток суммы
Дело только набрать код. Но думаю на практике нужно все 3 таблицы разнести по трём листам - будет проще.
Со словарями работали? Сортировку в код можно добавить готовым модулем, найти в сети или бота попросить написать.
А если работаете на МАКе - там словарей нет, тогда нужно усложнять логику, или искать где-то класс для замены словаря на коллекции для маков, есть такой...

P.S. Добавил файл с макросом

Автор - Hugo
Дата добавления - 27.01.2025 в 21:14
  • Страница 1 из 1
  • 1
Поиск:

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