我有三列“SAMPLE ID”结果,平均值
例如:
SAMPLE ID
1201
1201
1201
1201
1300
1300
1300
1300
1400
Results
400
490
340
400
400
490
233
400
290
我使用以下公式来获得第3列中的平均值。我希望在vba中完成此操作。我的数据集很长(只显示了几个)
2.我们可以将其定义为字符串并将其复制下来吗?所有的帮助都是适当的。或任何其他编码方式谢谢
= IF(A2<>A1,AVERAGEIF(A2:INDEX($A2:INDEX(A:A,MATCH(1E+99,A:A)+1),MATCH(TRUE,(INDEX($A2:INDEX(A:A,MATCH(1E+99,A:A)+1)<>A2,)),0)),A2,B2:INDEX($B2:INDEX(B:B,MATCH(1E+99,A:A)+1),MATCH(TRUE,(INDEX($A2:INDEX(A:A,MATCH(1E+99,A:A)+1)<>A2,)),0))),"")
答案 0 :(得分:0)
试试这个
Sub main()
With Worksheets("averages") '<== change it as per your actual worksheet name
Range("C1:C" & .Cells(.Rows.Count, 1).End(xlUp).Row).formula = "= IF(A2<>A1,AVERAGEIF(A2:INDEX($A2:INDEX(A:A,MATCH(1E+99,A:A)+1),MATCH(TRUE,(INDEX($A2:INDEX(A:A,MATCH(1E+99,A:A)+1)<>A2,)),0)),A2,B2:INDEX($B2:INDEX(B:B,MATCH(1E+99,A:A)+1),MATCH(TRUE,(INDEX($A2:INDEX(A:A,MATCH(1E+99,A:A)+1)<>A2,)),0))),"""")"
End With
End Sub