【问题标题】:FInd nearest value within list condition在列表条件中查找最接近的值
【发布时间】:2017-06-25 03:07:42
【问题描述】:

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

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

【问题讨论】:

  • 您想要高于或低于您的搜索值的最接近的值吗?在GP_42 中说你有3620036400。你想要哪一个作为“结果值”?
  • 是的,我想要最接近的值,但来自列表。如果单元格 B1 的值为 GP_42,则从列表 GP_42(单元格引用 D3:D12)中选择最接近单元格 B2 的值,或者如果单元格 B1 的值为 GP_46,则从列表中选择 GP_46(单元格引用 E3:E12)。

标签: excel excel-formula match conditional-statements


【解决方案1】:

我假设您想要最接近的值。这意味着您需要绝对 (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),并为您提供第二个可用的匹配项。


¹ 数组公式需要使用 Ctrl+Shift+Enter↵ 完成。如果输入正确,Excel 会将公式用大括号括起来(例如 {})。你不用自己输入大括号。一旦正确输入第一个单元格,它们就可以像任何其他公式一样被填充或向下或向右复制。尝试将全列引用减少到更接近代表实际数据范围的范围。数组公式以对数方式消耗计算周期,因此最好将引用范围缩小到最小值。请参阅Guidelines and examples of array formulas 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-20
    • 2015-07-26
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    相关资源
    最近更新 更多