公式应该可以用
=index($e15:$e30,match(c31,a15:a30,1))+(index($e15:$e30,match(c31,a15:a30,1)+1)-index($e15:$e30,match(c31,a15:a30,1)))/100*(c31-index($a15:$a30,match(c31,a15:a30,1)))
这种类型实现,看看index和match()这种组合,试试吧
我手编的,也看不到行号列标,不一定对,你根据实际调整试试
追问
刚才我演算了一下,用你说的函数,计算的宽顶堰单孔,凡整数位流量是一致的,但不是整数位均出现偏差。如:101m 76;102m 117;103m 163.5;104m 214.5,此时我原来条件判断出错。但当在101.50m 你的为76.205 而实际为96.5;当在101.8m时你76.328,而实际则为108.8;我感觉你是不是认为泄量中的参数是线性的原因啊?
追答
根据你的表,INDEX($E7:$E27,MATCH(C31,A7:A27,))取C31>=A列值同行的E列值,INDEX($E7:$E27,MATCH(C31,A7:A27,)+1),取>=A列值下一行的E列值;
具体到公式中,C31=101.5时,这两个值分别是76.0和117,也就是E17和E18,以些类推。你的公式计算的内容说实话我也不懂,要是这样取值不符合你的要求的话,就不适合你的公式了。
INDEX($E7:$E27,MATCH(C31,A7:A27,))取A列>=C31的最小值,C31=101.5时,等于101,也就是A17。
要是取值没错,则这几个公式直接代入((($E$17+(($E$18-$E$17)/100)*(C31-$A$17)*100)))中替换具体的E17等就可以了。
最终公式=INDEX($E7:$E27,MATCH(C31,A7:A27,1))+((INDEX($E7:$E27,MATCH(C31,A7:A27,1)+1)-INDEX($E7:$E27,MATCH(C31,A7:A27,1)))/100)*(C31-INDEX($A7:$A27,MATCH(C31,A7:A27,1)))*100
追问
水库的水位是最小分辨率的0.01m,相应闸门出库流量的也应该是对应的的,你的运行是取整计算,导致水位变化与出库流量变化不符。我原先就是通过条件函数+计算+判断=结果,数据自动计算准确,但受限于条件2003exls函数的嵌套限制。我对水位-流量表进行改动,然后通过LOOKUP函数在不升级2003exls情况已经解决了条件函数的嵌套受限的问题。不过我的方法也是受你的启发才解决问题,因地一样要谢谢你!谢谢!
追答
解决问题就好,但这个公式也没有你说的小数位数的限制,也不是取整计算,只是你原来的公式换了一种数据提取方式。
追问
我再仔细看过了,你说的不错,你好厉害,一点问题也没有与我想要的结果一样。谢谢!
更多追问