分开两行数据


0

我正在机器上进行数据测量(测量激光功率)它以10%的功率运行,然后是25%,50,75和100,两个单独的光学元件之间有冷却时间。每次跑步都不是恒定的长度,也不是冷却时间。所有数据都在一列中,数据范围非常一致。我试图在每个功率下获得每个光学元件的平均值。我把它们平均在一起,只需找到一种方法将数据基本上减少一半。 数据图

我在下面提供了我的代码:

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

如果您知道在t = 6000之前的所有内容都是光学1并且t = 6000之后的所有内容都是光学2,那么只需添加一列并自己标记。然后,您可以参考宏中的新的optical_num列。
picobit

@picobit读数的长度和所有降温变化,所以我不能假设一个设定值。
Blake Irwin

跑步和降温的长度可能会有所不同,但在观察情节时它们非常明显。只需手动完成。这将花费你不到五分钟。
picobit
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.