Excel复合条件为任意长度

我有一列火车的位置,时间,纬度,长度,速度和高程数据。 我的问题是,我想删除列车停止的数据点,这将包括减速和加速度测量。 这个想法是比较一些列车在最佳条件下行驶同一条路线,即不停车。 测量显示列车停在不同的时间和地点。 我目前检查以前的位置是否相同,然后检查速度是否小于前三个值的50%。 问题是如果超过以前的3个值是o还是小于先前保持速度的50%,那么我不会删除所有需要的数据,例如列车加速回到速度,如下面的U60。

这是eqn是U60

=IF(P60=P59,"removed",IF(S60<(0.5*S59),"removed",IF(U59="removed",IF(S60<(0.5*S58),"removed",IF(S60<(0.5*S57),"removed",P60)),P60))) 

我能想到的唯一方法就是拥有多个嵌套条件(高达20)来捕捉所有的点。 这对一些列车来说可能还不够。

有没有办法消除减速和加速点(这可能是2点或3点),而不必有〜20嵌套条件?

在这里输入图像说明

ORfunction是你在找什么。 如果它的任何一个参数是真的,它将输出TRUE 。 您的最终function将如下所示:

 =IF(OR(P60=P59,S60<(0.5*S59),S60<(0.5*S58)),"removed",P60) 'there are more arguments in your actual nested function that you will add 

在使用@ user3819867的解决scheme一段时间后,我们已经确定这是不够的,因为我们无法捕获减速或加速的实际点,而无需手动find它们。

但是,我们已经提出了一个应该足够的解决scheme。 解决方法是在速度的连续峰值之间进行线性插值。 这应该只发生在火车(车辆)已经停止的情况下。 为了做到这一点,我需要计算每个点的斜率,确定点是否是局部峰,确定上一个和下一个峰的位置,然后确定这些峰的X和Y坐标以执行插值。

这里简要介绍一下eqns和电子表格的内容。

 Slope of velocity line =IFERROR(SLOPE(AH2:AH3,AD2:AD3),"") local peak =IF(AND(AM4>0,AM3<0),"peak","") REPLACE =IFERROR(MATCH(0,INDIRECT("AH"&AP3):INDIRECT("AH"&AQ3),0),"") previous peak =SUMPRODUCT(MAX(($AN$3:AN3="peak")*(ROW($AN$3:AN3)))) next peak =MATCH("peak",AN4:$AN$453,0)+ROW(AN3) new Y1 =IFERROR(INDIRECT("AH"&AP3),"") new Y2 =INDIRECT("AH"&AQ3) X1 =IFERROR(INDIRECT("AD"&AP3),"") X2 =IFERROR(INDIRECT("AD"&AQ3),"") new velocity (Y) =IF(AO3<>"",IFERROR(AR3+(AD3-AT3)*(AS3-AR3)/(AU3-AT3),AH3),AH3) 

在局部最大值之间插值的步骤

希望这有助于他人。