使用WEEKNUM的Excel SUMPRODUCT功能

时间:2017-04-26 19:49:05

标签: excel excel-formula excel-2010

您好我有一些相当大的表格详细说明我可以直接从我的软件供应商下载的通话状态,收入等。相关的是这一栏

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

我试图按周数计算这个数字用于图形目的所以我创建了一个单独的电子表格,我可以过滤多年的数据并显示在图表中。

我创建了一个表格,如:

WeekNumber | Count | Revenue

我正在尝试将此公式用于Count,但它使用了标题单元格,它给了我#VALUE。如果我可以跳过标题单元格,我相信它会起作用,但我尝试的每个变体都会失败。

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

1 个答案:

答案 0 :(得分:1)

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

此外,请跳过标题,因为这会弄乱公式,因为它只接受数字。另外,建议不要使用整列,因为SUMPRODUCT会降低您的速度。也许使用范围来改善生活。