【问题标题】:Vlookup function查找功能
【发布时间】:2020-04-02 10:05:14
【问题描述】:

我刚刚使用了 Vlookup 函数。 似乎工作正常,但在某些情况下它不会返回最接近的值。

示例:如果您的查找值为 3.9,它将返回 3 而不是 4。有什么方法可以解决这个问题?

【问题讨论】:

  • 展示你的代码和数据
  • 数据:我有两列 A 和 B。对于 A 中的每个单元格,我应该在 B 中找到最接近的值。它是时间值(双值)代码:我正在使用这一行 Application.WorksheetFunction .VLookup(Range("A3"), Range("B3:B13"), 1, True)
  • 还显示导致不需要结果的数据示例
  • 23215.031 23215.294 23215.548 23215.808 23216.068 23216.328 23216.589 23216.848 23217.108 23217.612在上面的柱23217.63,我想找最接近的值到23217. VLOOKUP给出23216.848这不是最接近的一个。 23217.108 是想要的结果。
  • 请更新您的问题以包含这些精度。

标签: vba vlookup lookup matching closest


【解决方案1】:

根据VLookUp函数的MS Documentation,您可以将第4个参数设置为“如果您想要近似匹配则为TRUE”。 在我看来,术语“近似”并不意味着“最接近的数字”,因为您也可以查找字符串或日期。

要解决您的问题,请创建一个小函数,循环遍历 B 列中的数据,将 A3 中的值与 Bx 中的值进行比较,然后保存差异最小的值。

【讨论】:

  • 谢谢文森特。这就是我所做的并且效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-02
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 2016-10-21
  • 1970-01-01
相关资源
最近更新 更多