我有一个圆柱加工的零件,沿着直圆柱的长度有多个凹槽。我沿着长度扫描,因此我有1000个数据点,这些数据点都是圆柱体沿其长度的直径。
数据看起来像这样-
1.0 <- Starts on the flat part
.99
1.0
1.0
.95 <- Begins dipping into the groove
.93
.92 <-minimum groove depth reached
.93
.97
1.0 <- back up to flat part
1.01
1
1.01
1.0
.98 <- begins groove again
.95
.94
.92 <- minimum groove depth reached
.93
.97
1.0 <-back to flat part
1.0
...
如您所见,平坦部分全都在1左右,然后缓慢下降至.92,然后多次回落至1。
我正在尝试找到一种方法来记录“平坦”部分的最大值和最小值,然后记录“凹槽”的最小值,然后记录新部分的最大值和最小值,依此类推
输出将类似于-
单位1
Max=1.0
Min=.99
凹槽1
Min=.92
平面2
max=1.01
min=1.0
凹槽2
min=.92
以此类推。这可行吗?我已经在excel中尝试了多种方法,但是它很复杂,到目前为止还无法正常运行。可以在Excel中完成此操作,还是必须使用VBA?任何提示或建议,将不胜感激!
答案 0 :(得分:0)
我不确定这是否是您要寻找的东西。
假设您的数据从单元格A2
开始,并且您以“ Flat”开头
在单元格B2
中,键入Start Flat 1
在B3
中,键入以下公式:
=IF(AND(A3>0.98,A2<=0.98),"Start Flat "&COUNTIF(B$1:B2,"Start Flat*")+1,IF(AND(A3>0.98,A4<=0.98),"End Flat "&COUNTIF(B$1:B2,"End Flat*")+1,IF(AND(A2>A3,A4>A3,A3<0.98),"Groove min. " & COUNTIFS(B$1:B2,"Groove*")+1,"")))
向下填充
您应该得到这样的东西:
要从平面和凹槽的最小值中获取随机值:
设置一个表,第一列从1
开始。
在第二列中,插入以下公式:
=IFERROR(INDEX(A:A,RANDBETWEEN(MATCH("Start Flat " & J2,B:B,0),MATCH("End Flat " & J2,B:B,0))),"")
在第三步中,使用以下命令:
=IFERROR(INDEX(A:A,MATCH("Groove min. "& J2,B:B,0)),"")
您应该以如下形式结束: