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