查找在excel中的单元格内发生字符串的时间

时间:2011-07-29 21:22:37

标签: vbscript excel-vba vba excel

我有一个包含大量数字数据的电子表格,所有数据都排列在一列中。通过使用关键字来分解数据。

KEYWORD
1
2
3
4
5
KEYWORD
1
2
KEYWORD
.
.
.

我想知道是否有办法快速获取关键字的每个实例之间的平均值,并将其设置在刚刚平均的区域右侧的单元格中。我从来没有做过任何真正的硬核VBA脚本,所以我完全不知所措。

2 个答案:

答案 0 :(得分:2)

这应该这样做。不过,可能有更好的方法。

Sub GetAverages()
    Dim sum As Single
    Dim count As Long
    Dim cell As Range

    For Each cell In ActiveWorkbook.ActiveSheet.Range("a1", ActiveSheet.Range("A1").End(xlDown))
        If CStr(cell.Value) = "KEYWORD" Then
            If count > 0 Then
                ActiveWorkbook.ActiveSheet.Cells(cell.Row - 1, cell.Column + 1).Value = sum / count
            End If

            count = 0
            sum = 0
        Else
            sum = sum + cell.Value
            count = count + 1
        End If
    Next cell
End Sub

它在我的样本数据上输出了这个......

KEYWORD 
92  
20  
93692   
936 
92         18966.4
KEYWORD 
32  
324        178
KEYWORD 
235 
324 
23  
3   
342 
2   
343 
34         163.25
KEYWORD 

答案 1 :(得分:0)

我不会使用VBA。

在列旁边的列中使用此公式,其值为:

=IF(ISNUMBER(<columnName>);<columnName>;"")

例如,如果列的值为C则为

=IF(ISNUMBER(C1);C1;"")

然后在新列上使用Average函数:

=AVERAGE(D:D)