
Предположим, у меня есть список значений типа 3.67
, 15.89
, 8.58
, 1.14
, и 9.69
в 5 разных ячейках. Как мне выделить , 15.89
поскольку оно ближе всего к целому числу?
решение1
Предположим, что ваши данные находятся в ячейках A1:A5, в ячейке B1 введите следующую формулу и заполните ее до B5:
=IF(MOD(A1,1)<0.5,MOD(A1,1),1-MOD(A1,1))
Теперь в ячейку B6 введите следующую формулу:
=INDIRECT("A"&MATCH(SMALL(B1:B5,1),B1:B5,0)+0)
Это даст вам ответ. Если ваши данные на самом деле начинаются, скажем, со строки 7, то вам нужно будет обновить диапазоны соответствующим образом, а также изменить конец 2-й формулы с +0
на +6
.
Мы используем функцию по модулю, чтобы найти десятичное значение только... если десятичная дробь равнапод0,5, то мы сохраним это значение; если этонад0,5 мы вычтем его из 1: Это делает числа сопоставимыми. Затем формула итога ищет наименьший результат в столбце B и использует строку ячейки результата, чтобы вернуть значение столбца A.
решение2
У меня нет доступа к Excel, чтобы протестировать это решение с условным форматированием для выделения ячейки, но вот фрагмент для определения значения, ближайшего к целому числу.
Ваши значения указаны в столбце A, а идентификация наиболее близкого из них — в столбце B. Вы можете адаптировать это по мере необходимости.
Решение представляет собой формулу массива, поэтому Ctrl Shift Enterвместо введите все, кроме фигурных скобок Enter.
Формула в B1:
=ABS(A1-ROUND(A1))=MIN(ABS($A$1:$A$5-ROUND($A$1:$A$5)))
Копируйте и вставляйте по мере необходимости. Он сравнивает абсолютную разницу между значением и его ближайшим целым числом с минимумом для диапазона. Если разница соответствует минимуму, он возвращает True. Таким образом, результат можно использовать в качестве тестового условия или основы для отображения, скажем, либо пробела, либо какого-либо текста для ближайшего значения.