Как вы используете формулу массива для вычисления промежуточного итога, который уменьшается при перемещении вверх по строкам? - PullRequest
1 голос
/ 30 января 2020

Когда сотрудник работает сверхурочно для клиента, мы выделяем эти часы самой последней смене клиента (самая дальняя строка для этого сотрудника), а затем выделяем оставшиеся OT up строк. В столбце D указано общее количество часов для распределения. Столбец E - формула для доступных часов ОТ; Я пытаюсь преобразовать Col E в массив, но работаю с циклической ошибкой зависимости:

Формула, которая работает

=IF(D2>0,D2,E3-C3)

Формула массива, которая приводит к ошибке циклической зависимости:

=ARRAYFORMULA(IF(D2:D>0,D2:D,E3:E-C3:C))

Я не хочу включать итеративные вычисления, так как мой лист составляет около двух тысяч строк. Я прочитал совокупную сумму сообщений , которые включают MMULT и ROW, или SUMIF и ROW в функцию ARRAYFORMULA, но я не могу понять, как накапливать уменьшенное число при его перемещении up строк.

enter image description here

Вот ссылка на лист Спасибо.

1 Ответ

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

Я сделал новую вкладку под названием MK.Help и поместил эту формулу в E2. Если я понимаю, что вы собираетесь, я думаю, что это сработает?

=ARRAYFORMULA(MMULT(N(A2:A=TRANSPOSE(A2:A))*(ROW(B2:B)<=TRANSPOSE(ROW(B2:B))),D2:D-C2:C)+C2:C)
...