找回密码
 立即注册
搜索

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

2
回复
1682
查看
[复制链接]

1

主题

12

帖子

2

幻币

初入江湖

Rank: 1

积分
10
2021-11-13 12:02:00 显示全部楼层 |阅读模式
因为本人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,这到底是啥原因呢,求助各位大侠,多谢!
PPT学习论坛
回复

使用道具 举报

0

主题

5

帖子

0

幻币

初入江湖

Rank: 1

积分
5
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})
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

幻币

初入江湖

Rank: 1

积分
0
2022-1-21 22:23:06 显示全部楼层
版主威武,就是浮点问题,加round就欧了!
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册