Как решить формулу sumproduct в Excel, чтобы получить рабочие дни по датам работы - PullRequest
1 голос
/ 27 марта 2019

Вопрос Excel.

Я получил таблицу со столбцом дат и вычисляемый столбец со значениями.В итоговой ячейке у меня есть

  =SOMPRODUCT( (MONTH(Tijd[Datum(s)])=MONTH(TODAY()) )* (Tijd[Uren gewerkt in decimalen]) )

, конечно, отлично работает.Однако с теми же столбцами и подсчетом еженедельной сводки я получаю ошибку

  =SOMPRODUCT( (WEEKNUMBER(Tijd[Datum(s)])=WEEKNUMBER(TODAY()) ) * (Tijd[Uren gewerkt in decimalen]) )

Это дает мне ошибку #Value.Если я использую WeekNumber (AnEmptyCell) в качестве теста, он просто возвращает ноль, без значения ошибки.

Ключевые результаты F9 -

Tijd[Datum(s)] - all the dates and zero's when no date.

(WEEKNUMMER(Tijd[Datum(s)]) - #Value error

все остальные части также в порядке.

Все поля в столбце датумов являются полями даты.

Что я не так и как это решить?

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Существует два типа функций формулы Excel: те, которые могут использоваться с массивами, и те, которые не могут.MONTH относится к первому типу, WEEKNUM относится ко второму.Чтобы проверить это, поместите две произвольные даты в A1: A2 и введите =MONTH(A1:A2) в B1: B2 (выберите B1: B2 и нажмите Ctrl + Shift + Enter) и =WEEKNUM(A1:A2) в C1: C2.Первая будет отображать действительные значения, а вторая будет иметь две #VALUE! ошибки.

Если вы используете формулу в приведенной выше настройке, я бы порекомендовал проверить, является ли дата после понедельника и до воскресеньяданной недели.

У меня нет доступа к Excel с голландским (?) языковым стандартом, поэтому я добавил английское название функций, которые нужно вставить в формулу:

  =SOMPRODUCT( ( TODAY()-WEEKDAY(TODAY(),2)+1 <= Tijd[Datum(s)] ) * ( Tijd[Datum(s)] < TODAY()-WEEKDAY(TODAY(),2)+7 ) * (Tijd[Uren gewerkt in decimalen]) )
0 голосов
/ 27 марта 2019

Это:

WeekNummer() or:
WeekNumber() or:
WeekNum()?

(Имя функции зависит от локали)

...