VBA excel反击最大

时间:2017-03-16 11:15:34

标签: excel vba excel-vba

我今天写信给你,因为我在计算给定年份的数量时遇到了问题。

这是我所拥有的一个例子:

enter image description here

我希望将每行的滑动年份中的值与最多12个Qx / 201x相加,这是我行中的最后几个月。我在每个具有“Qx / 201x”的列下面放了一个“1”,但我只想保留最后的12并根据该值对值进行求和。

关于如何完成这项工作,您对VBA有一个简单的想法吗?

1 个答案:

答案 0 :(得分:1)

尝试此功能

 Function SumIfColMatch(ByVal matchRow As Integer, ByVal matchString As String, ByVal sumRange As Range, ByVal maxToCount As Integer)
    Dim dblTotal As Double
    Dim lngCounter As Long
    Dim sumCount As Integer

    sumCount = 0

    For lngCounter = sumRange.Cells.Count To 1 Step -1
        If Cells(matchRow, lngCounter).Value Like matchString Then
            dblTotal = dblTotal + sumRange(lngCounter).Value
            sumCount = sumCount + 1
            If sumCount >= maxToCount Then Exit For
        End If
    Next lngCounter

    SumIfColMatch = dblTotal

End Function
In the formula cell use something like this

    =SumIfColMatch(1,"Q*/201*",A3:DL3,12)

它适用于我看到附加截图

enter image description here