a.i.mershik,в прикрепленном файле постарался описать и показать, что я имел ввиду.
Первая таблица работает по Вашей формуле, принцип работы тот, что нужен, но не совсем соответствует условиям.
Грубо говоря я себе работу формулы/макроса представляю так:
1)Пользователь вводит число в столбец "наличие"
2)Эксель анализирует:
2.1) Если выполняется условие сумма столбцов "положено"=столбцу "наличие", то возвращает в столбцы "распределено" то же самое, что находится в столбце "положено" для каждого склада
2.2) Если не выполняется условие сумма столбцов "положено"=столбцу "наличие",то эксель распределяет столбец "наличие" в столбцы "распределено" для каждого склада равномерно (более менее равномерно, понимаю что к математике такое понятие не применимо, но не знаю как объяснить математическим языком), но не превышая столбец "положено" для каждого склада.
3)Конец.
Я распределение руками как сделал:
1) Нашел среднее значение всех столбцов "положено" для складов, это число 77 для примера,что в прикрепленном файле.
2) Сначала заполнил те ячейки в столбцы "распределено" для всех складов, столбец "положено" для которых меньше или равен 77. (Склады 5,6,7,8,11)
3) Далее для оставшихся складов опять нашел среднее значение, это число 98.33, округлил до 98.
4) Заполнил те ячейки в столбцы "распределено" для оставшихся складов, столбец "положено" для которых меньше или равен 98. (Склад 4 и 9).
5) Опять поиск среднего значения для оставшихся складов и это число 101.
6) Заполнил те ячейки в столбцы "распределено" для оставшихся складов, столбец "положено" для которых меньше или равен 101. (Склад 10).
7) Полученное число 101 записал в ячейки столбцов "распределено" для складов 1,2,3 так как оно соответствует условиям меньше или равно ячейке столбца "положено" и при таком распределении остаток ячейки столбца "наличие" полностью распределиться и будет равен 0.
Расписал пошагово.