Вот как выглядит мой стол

Что у меня есть: более 200 строк, каждая с тремя значениями, каждая для уникального дня. В списке указаны только значения для рабочих дней, поэтому иногда в списке могут отсутствовать дни или даже целые недели из-за выходных.

Что мне нужно: для каждой законченной недели, в которой была хотя бы одна дневная строка (и, следовательно, день присутствовал в списке), мне нужно умножить значения из столбца DIF (формула выглядит как = (1-ValueDayOne) * (1 -ValueDayTwo) -1), а затем создать список этих недельных значений.

Может ли кто-нибудь помочь мне с этим? Если что-то, что я написал, не на 100% ясно, не стесняйтесь задавать вопросы, я попытался указать всю необходимую информацию, но я мог что-то случайно пропустить.

1 ответ1

0

Формула для копирования в столбец "WEEKDIF":

=PRODUCT(IF(($A$2:$A$21>=A2-WEEKDAY(A2,3))*($A$2:$A$21<A2-WEEKDAY(A2,3)+7),(1+$B$2:$B$21),1))-1

Это формула массива, поэтому вам нужно завершить ее, нажав CTRL+SHIFT+ENTER.

Как это устроено:

  • A2-WEEKDAY(A2,3) и A2-WEEKDAY(A2,3)+7) вычисляют дату фактического понедельника (неделя даты в текущей строке) и следующих недель.
  • ($A$2:$A$21>=A2-WEEKDAY(A2,3))*($A$2:$A$21<A2-WEEKDAY(A2,3)+7) - проверяет, есть ли в строке фактическая неделя.
  • =IF(...,(1+$B$2:$B$21),1))-1 возвращает 1+diff для текущей недели и 1 для всех остальных (нужно умножить на 1, если мы не хотим меняться результат).
  • =PRODUCT(IF(...)-1 - вычисляет произведение всех чисел и вычитает 1 согласно исходной формуле.

Примечание: чтобы быть последовательным в вычислениях, я изменил 1-dif на 1+dif , если мое предположение неверно, вы можете изменить его обратно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .