Estou fazendo medições de dados em uma máquina (medindo a potência do laser). Ele funciona com 10% de potência, depois 25%, 50, 75 e 100 com cooldowns entre duas ópticas separadas. Cada run não é um comprimento constante e nem os cooldowns. Todos os dados estão em uma coluna e os intervalos de dados são bastante consistentes. Eu estou tentando obter médias de cada óptica em cada poder. Eu tenho isso em média juntos e só precisa descobrir uma maneira de cortar os dados ao meio, basicamente. Plot of data
Eu incluí meu código abaixo:
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