自动计算当年填写的特定单元格值的数量 – 每年

我试图让我的Excel表格拉出一个每年访问一次的访问者列表 – 例如 – 我想看看人们每年参加一年一次的疫苗的频率 – 这被input到每个工作表的第27行(除了结果),然后使用查找来填充最新的结果到单元格E13 (也在每个工作表上)的个人文件的顶部。

=LOOKUP(2,1/(27:27<>""),27:27) 

但是,我希望我的结果表能够统计出今年在B14单元中有多less人每年接种一次疫苗(并自动计算每年的进展情况 – 因此在2017年我必须更改代码。

我正在使用一个模块从不同的工作表中取得结果(每个人都得到一张工作表):(对于其他的结果也使用这个结果,但是当年却让我感到困惑)

 Function myCountIfs(Rng1 As Range, Criteria1, Rng2 As Range, Criteria2) As Long Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name <> "Summary-Sheet" And ws.Name <> "Notes" And ws.Name <> "Results" Then myCountIfs = myCountIfs + WorksheetFunction.CountIfs(ws.Range(Rng1.Address), Criteria1, ws.Range(Rng2.Address), Criteria2) End If Next ws End Function 

我可以弄清楚如何在使用这个模块的时候把它从当前的信息中提取出来。 我试过使用,但我必须手动每年更改它,我希望它自动切换

 =my3COUNTIFS(E13,"<="&YEAR(2016),E13,">="&YEAR(2015)-1, I7,"Yes") 

与下面的VBA:I7是另一个必须调用的函数 – 如果I7是“是”和E13今年有一个date然后信息被计算

  Function my3CountIfs(Rng1 As Range, Criteria1 As String, Rng2 As Range, Criteria2 As String, Rng3 As Range, Criteria3 As String) As Long Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets Select Case ws.Name Case "Summary-Sheet", "Notes", "Results" ' do nothing Case Else my3CountIfs = my3CountIfs + Application.CountIfs(ws.Range(Rng1.Address), Criteria1, ws.Range(Rng2.Address), Criteria2) End Select Next ws End Function 

这里是人员工作表(他们都是一样的) 人员档案

这里是我希望今年进入单元格B14 结果页面的结果页面

任何帮助深表感谢

尝试下面的修改的UDF:

 Option Explicit Function my3CountIfs(Rng1 As Range, EndYear As Variant, Rng2 As Range, StartYear As Variant, Rng3 As Range, Criteria3 As String) As Long Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets Select Case ws.Name Case "Summary-Sheet", "Notes", "Results" ' do nothing Case Else ' needed to use regular Ifs here If Year(CDate(ws.Range(Rng1.Address))) >= CInt(StartYear) And Year(CDate(ws.Range(Rng2.Address))) <= CInt(EndYear) Then If ws.Range(Rng3.Address) = Criteria3 Then ' if 3rd range (I7) = "Yes" my3CountIfs = my3CountIfs + 1 End If End If End Select Next ws End Function 

但是,为了从Excel工作表(在你的例子中的单元格B14)调用它,使用下面的行:

 =my3CountIfs(E13,2016,E13,2015,I7,"Yes") 

请参阅下面的屏幕截图,例如在Excel中使用此UDF:2个工作表在单元格I7中为“是”,而在单元格E13中的date为15/12/2016 。 所以结果是2。

在这里输入图像说明