有没有一种方法可以在Excel中为细分找到多个最大值和最小值?

时间:2019-10-31 21:06:10

标签: excel vba excel-formula

我有一个圆柱加工的零件,沿着直圆柱的长度有多个凹槽。我沿着长度扫描,因此我有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?任何提示或建议,将不胜感激!

1 个答案:

答案 0 :(得分:0)

我不确定这是否是您要寻找的东西。

假设您的数据从单元格A2开始,并且您以“ Flat”开头

  1. 在单元格B2中,键入Start Flat 1

  2. 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,"")))
    
  3. 向下填充

您应该得到这样的东西:

enter image description here

要从平面和凹槽的最小值中获取随机值:

  1. 设置一个表,第一列从1开始。

  2. 在第二列中,插入以下公式:

    =IFERROR(INDEX(A:A,RANDBETWEEN(MATCH("Start Flat " & J2,B:B,0),MATCH("End Flat " & J2,B:B,0))),"")
    
  3. 在第三步中,使用以下命令:

    =IFERROR(INDEX(A:A,MATCH("Groove min. "& J2,B:B,0)),"")
    

您应该以如下形式结束:

enter image description here