Найти ближайшее совпадение в Excel, используя данные из таблицы - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь написать формулу в Excel, которая найдет наиболее близкое совпадение в одном столбце и вернет это значение, чтобы его можно было использовать в формуле SUMIFS. Я провел некоторое исследование и обнаружил, что все указывают на эту конкретную формулу:

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

Проблема, с которой я столкнулся, заключается в том, что я пытаюсь преобразовать это, чтобы использовать данные из таблицы, и до сих пор имею это:

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

Но Excel возвращает ошибку # VALUE! .

Что нужно сделать формуле, это найти ближайшую дату в столбце _CCD01 [[# All],[Дата]] с использованием TODAY () в качестве критерия поиска.

Файл с таблицей и формулой можно найти здесь: Dropbox Только для чтения

Любая помощь или мыслибудет оценен.

Дейв

1 Ответ

0 голосов
/ 14 октября 2019

Это формула массива .

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

Чтобы ввести / подтвердить формулу массива , удерживайте нажатой клавишу ctrl + shift при нажатии введите . Если вы сделаете это правильно, Excel поместит фигурные скобки {...} вокруг формулы, отображаемой на панели формул.

Синтаксис, который вы использовали _CCD01[[#All],[Date]], также вернет строку заголовка столбца. В этом нет необходимости, и это является причиной вашей #VALUE! ошибки.

  • Функция ABS вернет ошибку #VALUE ( в качестве первого элемента ) в массиве возвращается при применении к столбцу, поскольку первая запись - это текст.
  • А затем MIN аргументы, являющиеся значениями ошибок, или текст, который нельзя преобразовать в числа, вызывают ошибки.
...