Как включить два столбца данных в сумму до достижения определенного значения, а затем суммировать только один столбец для оставшихся строк? - PullRequest
0 голосов
/ 16 января 2019

Скажем, у меня есть лист данных Excel, содержащий датированные записи с идентификатором и двумя столбцами для "отработанных часов", а также таблицу в последующих столбцах для обобщения данных.

Пример:

image

В этом примере столбцы с A по D - это необработанные данные, столбцы I и J - это формулы, которые у меня есть на данный момент, а L и M - последние цифры, которые я хочу получить.

Столбец I использует

{=IFERROR(INDEX($A$2:$A$15,MATCH(0,COUNTIF($I$1:I1,$A$2:$A$15), 0)),"")}

для поиска уникальных идентификаторов из столбца A.

В столбце J используется

=MIN(SUM((SUMIF($A$2:$A$15,I2,$C$2:$C$15))+(SUMIF($A$2:$A$15,I2,$D$2:$D$15))))

для суммирования всех значений столбцов C и D для идентификатора, содержащегося в столбце I.

По сути, я хочу, чтобы столбец J суммировал все значения столбцов C и D до тех пор, пока сумма этих значений не станет равной 50, а после достижения 50 он будет суммировать только оставшиеся значения в столбце C .

Например, для идентификатора 12345 следует добавить 25 + 22 + 3, взяв сумму к 50, и в этот момент следует суммировать оставшиеся значения столбца C (оставшуюся часть ячейки C4, игнорировать ячейку D5 и просто сохранить Подводя итог колонке С). Конечное число для 12345 должно быть 72.

Примечание: записи всегда будут выполняться в хронологическом порядке.

1 Ответ

0 голосов
/ 16 января 2019

Лучший способ сделать это - использовать вспомогательный столбец. С помощью этой обновленной вспомогательной формулы данные нужно сортировать только по дате. В ячейке E2 используйте эту формулу и скопируйте:

=MAX(INDEX((A$1:A1=A2)*E$1:E1,))+C2+D2*(MAX(INDEX((A$1:A1=A2)*E$1:E1,))+C2<50)

Чтобы получить общую сумму в сводной таблице, используйте эту формулу в ячейке J2 и скопируйте:

=MAX(INDEX(($A$2:$A$15=I2)*$E$2:$E$15,))

При желании можно скрыть вспомогательный столбец или переместить его на другой лист.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...