如何求解 Excel sumproduct 公式以从工作日期获取周数

How do I solve the Excel sumproduct formula to get weeknumbers from dates working

一个Excel问题。

我得到一个 table,其中包含一列日期和一个包含值的计算列。在摘要单元格中,我确实有

  =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) 作为测试,它只是 returns 一个零,没有错误值。

F9 关键结果 -

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

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

其他部分都还可以

基准列中的所有字段都是日期字段。

我哪里错了,如何解决?

是吗:

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

(函数名称取决于语言环境)

有两种类型的 Excel 公式函数:可以与数组一起使用的和不能与数组一起使用的。 MONTH是第一种,WEEKNUM是第二种。要测试它,将两个任意日期输入 A1:A2,然后将 =MONTH(A1:A2) 输入 B1:B2(Select 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]) )