Excel-VBA平均几个最大值

时间:2016-07-12 16:37:49

标签: excel vba excel-vba

我有一台机器吐出我想要快速分析的数据文件。有一列数据(数千个读数)。这些值是激光功率读数。该机器有两个激光器,它以10%的功率运行第一个,冷却,25%功率,冷却,50%,冷却,75,冷却,100,长冷却,重复激光二。每个测量或冷却时间没有预定义的长度。我一直在研究一个削减可用读数块的宏(10%,25%等),但我正试图找到一种方法来通过这些点并平均每组,所以我知道每个的平均值光学器件1和光学器件2的值

Here is a plot of the data

这是我到目前为止所做的:

Sub test()


Application.ScreenUpdating = False

Range("D4", Range("D4").End(xlDown)) = "=ABS(RC[-1])"
Range("e5", Range("e5").End(xlDown)) = "=R[1]C[-1]-RC[-1]"
Range("f5", Range("f5").End(xlDown)) = "=IF(AND(ABS(R[0]C[-1])<2,R[1]C[-2]>12),INDEX(RC[-2]:R[19996]C[-2],R4C4),"""")"

Range("G1") = WorksheetFunction.AverageIf(Range("f5", Range("f5").End(xlDown)), "<20")
Range("H1") = WorksheetFunction.AverageIfs(Range("f5", Range("f5").End(xlDown)), Range("f5", Range("f5").End(xlDown)), "<100", Range("f5", Range("f5").End(xlDown)), ">60")
Range("I1") = WorksheetFunction.AverageIfs(Range("f5", Range("f5").End(xlDown)), Range("f5", Range("f5").End(xlDown)), "<200", Range("f5", Range("f5").End(xlDown)), ">160")
Range("J1") = WorksheetFunction.AverageIfs(Range("f5", Range("f5").End(xlDown)), Range("f5", Range("f5").End(xlDown)), "<300", Range("f5", Range("f5").End(xlDown)), ">260")
Range("K1") = WorksheetFunction.AverageIfs(Range("f5", Range("f5").End(xlDown)), Range("f5", Range("f5").End(xlDown)), "<400", Range("f5", Range("f5").End(xlDown)), ">360")


Application.ScreenUpdating = True

End Sub

0 个答案:

没有答案