列出条件中的最近值

时间:2017-02-07 18:22:50

标签: excel excel-formula match conditional-statements

我想找到一个单元格的最近值,但不知道如何。

Screenshot may help you to understand the question

在我的Excel工作表单元格B1中有一个值(LIST NAME),而单元格B2具有要用条件搜索的其他值。如果单元格B1具有值GP_42(列表名称),则使用列表GP_42(D4:D13)搜索单元格B2的值如果单元格B1具有值GP_42(列表名称),则se [![在此处输入图像描述] [2]] [ 2]使用列表GP_42(E4:E13)来表示单元格B2的值。如果值不匹配,则结果应为最接近的匹配值。结果应显示在单元格B3中。

enter image description here

1 个答案:

答案 0 :(得分:0)

我假设你想要最接近的值。这意味着您需要绝对ABS function)GP_42中的值与搜索值之间的差异。

在B3中作为数组公式¹,

=INDEX(GP_42, AGGREGATE(15, 6, ROW(GP_42)/(ABS(GP_42-B$2)=MIN(ABS(GP_42-B$2))), ROW(1:1))-ROW(GP_42)+1)

我使用ROW(1:1)来表示数字1.这为您提供了第一个遇到的匹配。在我的扩展示例中,第三个有两个符合B9和B10中“最小差异”的匹配。通过填充来实现B10。这会将ROW(1:1)提升为代表2的ROW(2:2),并为您提供第二个可用匹配。

enter image description here

¹数组公式需要用 Ctrl + Shift + Enter↵完成。如果输入正确,Excel将公式包装在大括号中(例如 {} )。您不要自己键入大括号。一旦正确进入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。尝试并减少对更接近表示实际数据范围的范围的全列引用。数组公式以对数方式计算计算周期,因此将参考范围缩小到最小值是一种好习惯。有关详细信息,请参阅Guidelines and examples of array formulas