使用WEEKNUM的Excel SUMPRODUCT函数

嗨,我有一些相当大的工作表,详细说明电话状态,收入等,我可以直接从我的软件供应商下载。 相关的是这个专栏

COMPLETED 1/1/2017 00:00 1/1/2017 02:30 etc 

我试图通过图表的目的来计算这个数字,所以我创build了一个单独的电子表格,我可以过滤多年的数据并在图表中显示。

我创build了一个表格,例如:

 WeekNumber | Count | Revenue 

我正在尝试使用这个公式计数,但它使用的标题单元格给我#VALUE。 如果我可以跳过标题单元格我相信它会工作,但我尝试的每一个变化都失败了。

 =SUMPRODUCT(--('2017Q1'!J:J>0)*(WEEKNUM('2017Q1'!J:J+0)=A3)) 

WEEKNUM不能用于数组中。 但是你可以用一个自定义函数实现这个,这里是代码:

 Function WeekNum2(dates As Variant) As Variant() Dim weeks() As Variant ReDim weeks(dates.Cells.Count - 1, 0) Dim i As Long For i = 0 To dates.Cells.Count - 1 weeks(i, 0) = Application.WorksheetFunction.WeekNum(dates.Cells(i + 1).Value) Next i WeekNum2 = weeks End Function 

然后在你的公式中,使用WeekNum2而不是WEEKNUM

此外,请跳过标题,因为它会弄乱公式,因为它只接受数字。 此外,不build议使用整个色谱柱,因为SUMPRODUCT会降低您的速度。 也许使用一个范围,而不是让你的生活更轻松。