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