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) даст первый. Любой из них приличный, если ваши данные не немонотонны .
Это все еще требует лучшего решения.
Заранее спасибо!