【问题标题】:Select Range of Dates that match Month and Type选择与月份和类型匹配的日期范围
【发布时间】:2014-03-14 18:37:00
【问题描述】:

我有一个日期范围:

--ID------Date-----Type
 123  |10/27/2013|  1
 124  |11/27/2013|  2
 125  |12/27/2013|  3
 ...      ...      ...

我需要选择日期为 10 月的所有类型“1”项目的总和。 我试着重申每一个:

For i = 7 To tmRowCount
    If (person.Cells(i, "D").Value = ctype) Then
        cmth = Month(person.Cells(i, "C").Value)
            If cmth = mth Then
                c = c + 1
            End If
    End If
Next i

但是它非常慢,一旦我获得大量条目就不会很好用。

【问题讨论】:

    标签: vb.net excel vba


    【解决方案1】:
    =SUMPRODUCT((MONTH(A2:A10)=10)+0, (B2:B10=1)+0)
    

    这里A2:A10 是包含要查找的日期的范围,B2:B10 是类型列。

    详细解释看this

    【讨论】:

    • 完美,谢谢:Evaluate("=SUMPRODUCT((MONTH(" & Chr(39) & person.Name & Chr(39) & "!C7:C1000)=" & mth & ")+0, (" & Chr(39) & person.Name & Chr(39) & "!D7:D1000=" & Chr(34) & ctype & Chr(34) & ")+0)")
    【解决方案2】:

    您也可以尝试使用.Find 结合.FindNext 来定位过滤条件。我发现这种方法大多数时候都比做一个完整的循环更快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      • 2018-12-24
      • 2018-09-04
      相关资源
      最近更新 更多