数値データを含むスプレッドシートを1列に並べました。データはキーワードを使用して分割されます。セル内で文字列が発生したときの検索Excel
KEYWORD
1
2
3
4
5
KEYWORD
1
2
KEYWORD
.
.
.
素早くキーワードの各インスタンス間の平均を取ると、ちょうど平均化された領域の右側にあるセルでそれを設定する方法があった場合、私は思っていました。私は本当のハードコアVBAスクリプティングを一度もしていないので、私は完全に迷っています。
数値データを含むスプレッドシートを1列に並べました。データはキーワードを使用して分割されます。セル内で文字列が発生したときの検索Excel
KEYWORD
1
2
3
4
5
KEYWORD
1
2
KEYWORD
.
.
.
素早くキーワードの各インスタンス間の平均を取ると、ちょうど平均化された領域の右側にあるセルでそれを設定する方法があった場合、私は思っていました。私は本当のハードコアVBAスクリプティングを一度もしていないので、私は完全に迷っています。
これはそれを行う必要があります。しかし、より良い方法があるかもしれません。
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
それは私がVBAを使用していないだろう
KEYWORD
92
20
93692
936
92 18966.4
KEYWORD
32
324 178
KEYWORD
235
324
23
3
342
2
343
34 163.25
KEYWORD
...私のサンプルデータにこれを出力します。
使用値と次の列への列で、この式:
=IF(ISNUMBER(<columnName>);<columnName>;"")
は、たとえば値を持つあなたの列がCである場合には、
=IF(ISNUMBER(C1);C1;"")
は、次に新しい列にAverage
機能を使用します。
=AVERAGE(D:D)