【发布时间】:2019-11-03 20:15:00
【问题描述】:
Excel
需要在表中找到最近的浮点数,对于每个整数 0..99
https://www.excel-easy.com/examples/closest-match.html 解释了一种从数组到常数单元格中查找最近数的绝妙技术。
我需要对许多值执行此操作(具体来说,从浮点数列表中找到最接近整数 0..99 的垂直列表)。
数组公式不允许比较值(整数)在我们向下移动整数列表时发生变化,它会将其视为一个常量位置。
我试过表格,指的是整数(有效),但上述网站的公式需要一个数组操作(F2,控制 shift Enter),这在表格中是不允许的。更正:您可以输入公式,控制输入一个单元格的数组函数,复制公式,然后插入表格。不要更改搜索单元格引用!
更新:
-
我仍然可以使用数组操作,但我必须手动将所需的函数复制到每 100 个目标单元格中。没什么大不了的。
-
修正了公式中的错字。有关“完美”的详细信息,请参见问题的结尾。
示例代码:
AI4=some integer
AJ4=MATCH(MIN(ABS(Table[float_column]-AI4)), ABS(Table[float_column]-AI4), 0)
对 AI5...AI103 中的后续整数重复
示例数据:
0.1 <= matches 0
0.5
0.95 <= matches 1
1.51 <= matches 2
2.89
考虑target=5,且4.5、5.5存在于列表中的情况。一个给出-0.5,另一个给出+0.5。搜索 ABS(-.5) 将给出第一个。任何一个都不错,除非您的数据是非单调的。
这仍然需要更好的解决方案。
提前致谢!
【问题讨论】:
标签: excel floating-point integer matching closest