首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配(最近)值,从范围的末尾开始

匹配(最近)值,从范围的末尾开始
EN

Stack Overflow用户
提问于 2014-01-03 15:47:31
回答 3查看 1.6K关注 0票数 0

如果我想要找到一个我不知道范围内的确切值的值,我可以使用什么公式(没有VBA)?所以让我说,我想找到最接近"2“的值,从范围的末尾开始。

代码语言:javascript
复制
A   B
1   1.45
2   2.03
3   3.40
4   3.01
5   1.94
6   0.99

在这种情况下,答案是"5“。

Edit1:我注意到我的问题需要更多的解释。就这样开始了。我不仅对范围的end中最接近的匹配值感兴趣,而且对范围的start上的匹配值也感兴趣。换句话说,我想从上面的例子中得到"2“和"5”。由于在范围开始时获得值并不难,所以我只需要在范围结束时获得值的帮助。但任何获得这两种价值的建议都是值得赞赏的。

我无法对数据进行排序,因为数据也用于其他目的。

Edit2:我想我找到了一种方法,如果我错了就纠正我。公式变得有点长,所以我把它分解成几个部分。

代码语言:javascript
复制
MAX(
    INDEX(A,
          MATCH(
                 SMALL(ABS(B-$C$1),1),
                 ABS(B-$C$1),
                 0
               )
         )
    INDEX(A,
          MATCH(
                 SMALL(ABS(B-$C$1),2),
                 ABS(B-$C$1),
                 0
               )
         )
   )

通过调用两个几乎相等的函数,最大函数将输出A的最高值,其中第一个函数将找到与查找值最接近的值,第二个函数将找到与查找值最接近的第二个值。

EN

回答 3

Stack Overflow用户

发布于 2014-01-03 16:06:27

这个答案假设A列中的数据是单调增加的。

在$C$1中测试您的编号(在您的情况下是2)。(我已经假设您的输入表是A1:B6对齐的)。

然后,在另一个单元格中,写:

代码语言:javascript
复制
=MAX(IF(ABS(ABS(B1:B6-$C$1)-MIN(ABS(B1:B6-$C$1)) < 0.00000000000001), A1:A6, 0))

这是一个数组公式;编辑后,您需要按Ctrl + Shift +返回。

(它使用一个技巧,将IF语句扩展到数组,只发出最小值,MAX根据问题规范选择更大的索引。在Excel的浮点类型中,有一个小数字作为不精确的解决方法。)

Excel中的数组公式非常强大。

票数 3
EN

Stack Overflow用户

发布于 2014-01-05 19:24:07

我想我已经找到办法了,如果我错了就纠正我。公式变得有点长,所以我把它分解成几个部分。

代码语言:javascript
复制
MAX(
    INDEX(A,
          MATCH(
                 SMALL(ABS(B-$C$1),1),
                 ABS(B-$C$1),
                 0
               )
         )
    INDEX(A,
          MATCH(
                 SMALL(ABS(B-$C$1),2),
                 ABS(B-$C$1),
                 0
               )
         )
   )

通过调用两个几乎相等的函数,最大函数将输出A的最高值,其中第一个函数将找到与查找值最接近的值,第二个函数将找到与查找值最接近的第二个值。

票数 0
EN

Stack Overflow用户

发布于 2014-01-03 15:55:38

您可以使用VLOOKUP:

Vlookup是Excel中最流行的查找函数之一。当您需要根据特定值从表中提取数据时,可以使用Vlookup进行此操作。

http://www.spreadsheetsmadeeasy.com/how-use-vlookup-excel/

*看看“搜索数字时的Vlookup”

让我们通过使用Vlookup公式来查看一些返回值。我将在0.03的温度下用这个公式做一个Vlookup:

=VLOOKUP(0.03,$A$2:$B$8,2,TRUE)

结果:“冷得可笑”

Excel处理此公式的方式类似于我们看到的最后一个公式:

它首先查看表的第一列,其值为0.03或接近(近似)。从0.01开始。因为0.01小于0.03,所以它移动到下一个。然后是32。由于32大于0.03,它作为最接近的匹配恢复到0.01。现在,它转到第2列,并返回0.01值旁边的相应值,这是“可笑的寒冷”。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20907461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档