Excel: как найти ближайший номер в таблице, много раз - PullRequest
0 голосов
/ 21 июня 2019

Excel

Нужно найти ближайшее число с плавающей точкой в ​​таблице, для каждого целого числа 0..99

https://www.excel -easy.com / examples / closest-match.html объясняет замечательную технику для нахождения числа CLOSEST из массива в постоянную ячейку.

Мне нужно выполнить это для многих значений (в частности, найти ближайший к вертикальному списку целых чисел 0..99 из списка чисел с плавающей запятой).

Формулы массива не позволяют изменять значение сравнения (целые числа) при перемещении вниз по списку целых чисел, оно обрабатывает его как постоянное местоположение.

Я пробовал таблицы, ссылаясь на целые числа (работает), но формула с вышеуказанного веб-сайта требует операции массива (F2, управляющий сдвиг Enter), которые не разрешены в таблицах. Исправление: Вы можете ввести формулу, ввести контрольную функцию массива для одной ячейки, скопировать формулы и вставить таблицу. Не меняйте ссылку на поисковую ячейку!

Обновление :

  • Я все еще могу использовать операции с массивами, но мне нужно вручную скопировать нужную функцию в каждые 100 целевых ячеек. Не важно.

  • Исправлена ​​опечатка в формуле. Смотрите в конце вопроса подробности о "совершенстве".

Пример кода:

AI4=some integer
AJ4=MATCH(MIN(ABS(Table[float_column]-AI4)), ABS(Table[float_column]-AI4), 0)

повторить для последующих целых чисел в AI5 ... AI103

Пример данных:

0.1  <= matches 0
0.5
0.95 <= matches 1
1.51 <= matches 2
2.89

Рассмотрим случай, когда target = 5 и 4.5, 5.5 существуют в списке. Один дает -0,5, а другой +0,5. Поиск АБС (-. 5) даст первый. Любой из них приличный, если ваши данные не немонотонны .

Это все еще требует лучшего решения.

Заранее спасибо!

1 Ответ

0 голосов
/ 28 июня 2019

У меня была другая проблема, которая подтолкнула к лучшему решению.

В частности, поскольку интересующие меня значения Y для X могут быть на разных расстояниях в X, я буду интерполировать X между Xуказать до и после.Т.е. ищите меньше или равно, также больше или равно, интерполируйте желаемый X, затем интерполируйте значения Y.

Я мог бы пойти дальше и интерполировать N - 1 до N + 1, что дастчистые результаты для шумных данных.

...