Excel – 使用COUNTIFS计算多个工作表之间的特定范围内的date

我试图“计算”不包括第一个“总结”表在内的多个表之间的某个date范围内的date数。 以下我用过的其他例子:

=COUNTIFS('CWP-A1-Inst'!S7:S51,">=2015-09-13" _ ,'CWP-A1-Inst'!S7:S51,"<=2015-09-19") _ + COUNTIFS('CWP-A2-Inst'!V7:V51,">=2015-09-13" _ ,'CWP-A2-Inst'!V7:V51,"<=2015-09-19") _ + COUNTIFS('CWP-A3-Inst'!T7:T50,">=2015-09-13" _ ,'CWP-A3-Inst'!T7:T50,"<=2015-09-19") 

这种方法的工作,但我有28张,75个date范围(每周从周日结束与星期六一年以上)和7个成本代码来填补这一点。 这将需要永远手动改变这些。

我也尝试了在另一个例子中build议的UDF – Excel – 跨多张/同一列使用COUNTIF / COUNTIFS – 但我无法弄清楚如何添加第二套标准的例子,因为我绝不是一个VB专家。

预先感谢任何build议。

当数据处于良好的结构中时,获取关于数据的摘要信息更容易。

如果你有一个很长的列表,你可以从使用数据透视表中受益例如在这里看到

如果你把你的数据放在一个长列表中,这将是一个好的开始(如果现有的表具有相同的结构)。

哈维

试试这个mod到张贴的UDF链接。

编辑:代码已被修复,所以现在它的工作。 我还在函数中添加了“<=”,所以你只需要提供inputdate,而不是别的。

 Function myCountIf(rng As Range, startDate as Variant, endDate as Variant) As Long Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets myCountIf = myCountIf + WorksheetFunction.CountIf(ws.Range(rng.Address), "<=" & endDate) - WorksheetFunction.CountIf(ws.Range(rng.Address), "<=" & startDate) Next ws End Function 

并为startDate和endDateinput条件eg = myCountIf(A:A,“> = 2015-09-13”,“<= 2015-09-19”)。