Excel:计数没有。连续发生的最后一次值

时间:2017-02-22 18:44:05

标签: excel-2010

很抱歉我无法在此处粘贴表格,因为我的工作笔记本电脑安全性并不能让我这么做。 我有一行有多个重复值,例如columnB到BI再次包含2s,3s,1s和3s。 最后一列中的值为3.我想计算最后在更改为其他值之前有多少列是值3。

例如:如果行看起来像

2 2 3 3 3 1 1 2 2 3 3 2 2 2 2 2,然后我想要的答案是5,因为最后一个值是2,它是最后5列。

我希望这是有道理的。

谢谢你, Parul。

1 个答案:

答案 0 :(得分:0)

您可以通过在VBA中创建UDF(用户定义函数)来实现,如下所示:

Function CountLast(x As Range, y As Integer)

    Dim lColumn, count
    lColumn = x.Cells(x.count).Column 'Get last column in range x
    count = 0
    For i = lColumn To 0 Step -1      'Start with last column and work from right to left
        If Cells(1, i).Value <> y Then 'Compare value of each cell with the value provided in y and leave the loop if not found
            Exit For
        End If
        count = count + 1              'Counts how many times the value is found
    Next i

    CountLast = count                  'Returns the counted value
End Function

然后你会像这样使用它:

=CountLast(B1:BI1,BI1)

对于您在我使用的问题中提供的示例数据:

=CountLast(A1:P1,P1)

,得到的答案是5

发生的事情是UDF正在查找范围中的最后一个单元格,然后从那里开始将它与您提供该功能并从右到左(step -1)的所选值进行比较然后它只要它们匹配就计数,最后返回计数值。