我有一个包含大量数字数据的电子表格,所有数据都排列在一列中。通过使用关键字来分解数据。
KEYWORD
1
2
3
4
5
KEYWORD
1
2
KEYWORD
.
.
.
我想知道是否有办法快速获取关键字的每个实例之间的平均值,并将其设置在刚刚平均的区域右侧的单元格中。我从来没有做过任何真正的硬核VBA脚本,所以我完全不知所措。
答案 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)