使用来自 Table 的数据在 Excel 中找到最接近的匹配项

Find the Closest Match in Excel using data from a Table

我正在尝试在 Excel 中编写一个公式,它将在一列中找到最接近的匹配项并 return 该值,以便它可以用于 SUMIFS 公式。我做了一些调查,发现每个人都指向这个特定的公式:

{=INDEX(data,MATCH(MIN(ABS(data-value)),ABS(data-value),0))}

我遇到的问题是我正在尝试将其转换为使用来自 Table 的数据,并且到目前为止:

{=INDEX(_CCD01[[#All],[Date]],MATCH(MIN(ABS(_CCD01[[#All],[Date]]-TODAY())),ABS(_CCD01[[#All],[Date]]-TODAY()),0))}

但是 Excel return 是一个 #VALUE! 错误。

公式需要做的是使用 TODAY() 作为搜索条件在 _CCD01[[#All],[Date]] 列中找到最接近的日期。

带有 table 和公式的文件可以在这里找到: Dropbox Read Only

任何帮助或想法将不胜感激。

戴夫

这是一个数组公式

=INDEX(_CCD01[Date],MATCH(MIN(ABS(_CCD01[Date]-TODAY())),ABS(_CCD01[Date]-TODAY()),0))

到enter/confirm一个数组公式,按住ctrl + shift同时点击 enter。如果操作正确,Excel 将在公式栏中看到的公式周围放置大括号 {...}

您使用的语法 _CCD01[[#All],[Date]] 也将 return 列的 header 行。没有必要这样做,这是导致 #VALUE! 错误的原因。

  • ABS函数将return一个#VALUE错误(作为第一个元素)在数组中它return s 当应用于列时,因为第一个条目是文本。
  • 然后 MIN 参数是错误值或无法转换为数字的文本会导致错误。