Custom SUMPRODUCT () - PullRequest
       87

Custom SUMPRODUCT ()

1 голос
/ 30 апреля 2020

У меня есть следующая таблица:

enter image description here

Моя цель состоит в том, чтобы разбить 10000 единиц на 5 месяцев, учитывая веса ниже каждого месяца , Рядом с 10 000 - моя лучшая попытка получить это (я потратил на это несколько часов). Желтый это то, что я после.

Логика c, которую я пытался использовать для расчета, выглядит следующим образом: Рассчитайте равномерный спред по месяцам (в этом примере 10 000/5 = 2000 = X). Умножьте вес каждого месяца, чтобы получить взвешенную сумму (в этом примере, чтобы получить M2 = 1600 и M4 = 3000: X + (X * M2-взвешивание) et c). Затем вы можете взять все 10000 минус их суммирование, что даст вам 5400, которые вы можете затем распределить по месяцам, не имея веса. Должен быть простой способ сделать это с SUMPRODUCT, но я не могу понять это.

Моя лучшая попытка на данный момент такова:

=IF(B3=0,SUMPRODUCT(ABS((10000/5)*$B3:$F3)),(10000/5)+((10000/5)*B3))

1 Ответ

2 голосов
/ 30 апреля 2020

Попробуйте следующее:

enter image description here

Формула в B3:

=IF(B$2=0,($A3-SUMPRODUCT(($B2:$F2<>0)*(($A3/5)*(1+$B2:$F2))))/COUNTIF($B2:$F2,0),($A3/5)*(1+B$2))

Перетащите вправо.

Logi c:

  • =IF(B$2=0,<true>,<false>) - Проверить, равна ли указанная выше ячейка нулю
  • Если значение выше ложно (поэтому не равно 0), то: ($A3/5)*(1+B$2) - Первое деление (10000/5) и умножьте этот результат на (1-<percentage>)
  • Если IF вернет true - проверьте, какие ячейки в диапазоне отличаются от нуля, и умножьте на те же логики c, как на шаге 2. Полученная сумма с SUMPRODUCT может быть затем вычтено из 10000 и разделено на количество ячеек, которые действительно содержат ноль (отсюда COUNTIF).
...