佳丽妈妈 发表于 2021-11-13 12:02:00

lookup与choose函数一个奇怪的问题

因为本人excel是用的某软件插件生成公式函数,无法上传附件,尽量在这里说明问题吧。我用lookup进行区域查找,其中用choose函数引用几个不相连的单元格构造数组,=lookup(9.87,choose({1,2,3,4,5},公式1,公式2,公式3,公式4,公式5),{-2,-1,0,1,2}),即9.87在[公式1,公式2)之间返回-2,在[公式2,公式3)之间返回-1,在[公式3,公式4)之间返回0,......以此类推。实际运行时,多数数据都通过了,但少数数据时候出现问题,即当其中公式3返回结果正好等于9.87的时候,按我设定的逻辑lookup结果应该是等于0的,但实际返回结果却是-1。研究了半天,发现当我按F9把choose({1,2,3,4,5},公式1,公式2,公式3,公式4,公式5)变成实际数值时,即{公式1结果,公式2结果,公式3结果,公式4结果,公式5结果},结果就又对了(返回0),但只要保持原公式,返回值就是-1,这到底是啥原因呢,求助各位大侠,多谢!

董柱 发表于 2021-11-26 12:10:00

猜测下原因
1.lookup 要求是升序,实际公式1.公式2...计算的结果不是升序
用其他思路解决,需要针对实际公式和数据 写公式。
2.公式1、公式2、公式3.....的结果可能有浮点误差.
解决办法 用round修复浮点误差
=lookup(9.87,round(choose({1,2,3,4,5},公式1,公式2,公式3,公式4,公式5),2),{-2,-1,0,1,2})

逆转瀏曐 发表于 2022-1-21 22:23:06

版主威武,就是浮点问题,加round就欧了!
页: [1]
查看完整版本: lookup与choose函数一个奇怪的问题