文本描述
事件 一月 数据 541 622 337 322 266 699 685 477 149 167 128 303 高层是否有交点 底层是否有交点 次序 高层交点X值 高点Y值 #N/A 622 TRUE TRUE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE 1 2 2 2 二月 三月 3 #N/A #N/A 6 #N/A #N/A #N/A 699 四月 4 五月 5 六月 6 #N/A 7 七月 7 685 八月 8 #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/A 九月 9 十月 10 11 12 十一月 十二月 分割线选择区间 300 600 交点Y值 600 次序中层交点X值下 中层交点X值上 中点Y值 541 交点Y值下 #N/A #N/A #N/A 300 交点Y值上 600 1 2 #N/A #N/A #N/A 4 1.728395062 2.077192982 #N/A 600 #N/A 337 600 #N/A #N/A 600 3 #N/A #N/A 600 4 #N/A 322 5 5 5.771362587 #N/A #N/A #N/A #N/A 477 300 #N/A 600 6 #N/A #N/A 9 #N/A #N/A 300 #N/A 600 7 7.408653846 #N/A #N/A #N/A #N/A #N/A #N/A 8 #N/A #N/A #N/A #N/A #N/A 9 #N/A #N/A 12 #N/A #N/A #N/A #N/A 303 #N/A #N/A 300 10 11 12 #N/A #N/A #N/A #N/A #N/A 公式解释 高层是否有交点 =IF(B3<>"",SMALL(IF({1;1;0},B2:B3,$E$16),2)=$E$16) 判断下面一个单元格是否为空,如果为空就是最后一个数据则不需要交点 再使用if数组返回当前与下一个数据和分割线600,然后使用SMALL取第二小的值,判断第二小的是否等于交点 解释:如果中间值不等于分割值600(可根据输入的高点分割值判断),证明他们没有过度的交点。所以返回false 底层是否有交点 公式与上一样,只是判断中间值是否等于300(可根据输入的低点分割值判断) 高层交点X值 ‘=IF(D2,($E$16-B2)/(B3-B2)+G2,NA()) if判断,如果为true,返回($E$16-B2)/(B3-B2),如果D2为false,那么就返回NA() ($E$16-B2)/(B3-B2)的计算方法为分割线到数据点值的距离/前后两个数据点之间的距离 高点Y值 ’=IF(B2>$E$16,B2,NA()) 判断当前值是否大于高点分割值,如果大于,返回原来数值,如果小于返回na() 交点Y值 ‘=IF(H2,$E$16) 判断高层交点X值是否有数据,有数据表示有交点,返回分割值,反则NA() 低点各值算法与高点一致 中层交点X值下 =IF((ISNA(V2))+(ISNA(H2)),V2,IF(V2>H2,H2,V2)) 判断底层交点Y值或者高层交点y值是否na,如果na那么返回(低点y值),如果不na,就再次判断低层Y值是否大于高点Y值,如果大于返回高点y值,否则返回低点y值 中层交点X值上 ‘=IF((ISNA(H2))+(ISNA(V2)),H2,IF(V2>H2,V2,H2)) 判断底层交点Y值或者高层交点y值是否na,如果na那么返回(高点y值),如果不na,就再次判断低层Y值是否大于高点Y值,如果大于返回低点y值,否则返回高点y值 中点Y值 ’=IF(AND(B2<$E$16,B2>$D$16),B2,NA()) 判断当前值是