Расчет еженедельного изменения на основе нерегулярных будних дней (в связи с праздниками) - PullRequest
1 голос
/ 22 апреля 2019

Example

Как рассчитать еженедельное изменение на основе нерегулярных рабочих дней, например, недели, содержащие четыре рабочих дня?

Я считаю «показателем», если в неделе только четыре дня, а затем выполните sum(day1:day4) on change%'s data.

А если есть пять дней, то sum(day1:day5).

Однако я не могу написать это в формате кода.

Ответы [ 2 ]

1 голос
/ 22 апреля 2019

вставьте в ячейку D2 и перетащите вниз:

=ARRAYFORMULA(IF(TEXT(A2, "ddd")="Fri", 
 TEXT(SUMPRODUCT(QUERY(QUERY(TO_TEXT({C$2:C, WEEKNUM(A$2:A), YEAR(A$2:A)}), 
 "where Col3 !=''"), 
 "select Col1 
  where Col2 = '"&WEEKNUM(A2)&"' 
    and Col3 = '"&YEAR(A2)&"'")), "0.00%"), ))

0

1 голос
/ 22 апреля 2019

В следующем ответе необходимо создать два дополнительных столбца (которые могут быть скрыты при необходимости) в диапазоне данных (weeknum и weekday) плюс Weekly Lookup Helper Table. Стол Helper может быть на отдельном листе; длина может быть 52 строки (по одной на каждую рабочую неделю).

Все решение выглядит так:
enter image description here

Формулы:
Диапазон данных рабочего дня

  • weeknum (ячейка B2) =weeknum(A2,1)
  • день недели (ячейка C2) =weekday(A2)
  • Значение (ячейка D2) User input
  • Ежедневное изменение (ячейка E2) =(C2-C3)/C3
  • Еженедельное изменение (ячейка F2) =IF(ISERROR(vlookup(B2&" "&C2,$H$4:$K$7,4,false)), "", vlookup(B2&" "&C2,$H$4:$K$7,4,false))

Таблица поиска

  • Ключ поиска (ячейка H4) =I4&" "&J4
  • Неделя (ячейка I4) - пользовательский ввод; создайте таблицу длиной 52 строки и введите в эту колонку номера недель от 1 до 52
  • maxifs (ячейка J4) =maxifs($C$2:$C,$B$2:$B,I4)
  • Еженедельное изменение (ячейка K4) =sumif($B$2:$B,I4,$E$2:$E)

LOGIC
Вспомогательный стол
Таблица помощников важна.
maxifs: извлекает максимальный день недели для номера каждой недели.
Weekly Change: суммирует ежедневное изменение по номеру недели. Ключ поиска - это просто объединение значений «week» и «maxifs»; это будет уникальное значение.

Диапазон рабочих дней
"weeknum" и "weekday" создают соответствующие значения для каждого дня.
Friday weekly change - это функция vlookup, которая выполняет поиск по дням недели / дня недели (в виде строки), а диапазон поиска - это таблица помощников. Комбинация имени недели и дня недели будет уникальным значением, которое позволит vlookup быть успешным.

...