Excel - выделите ячейку, которая ближе и меньше к заданному значению c - PullRequest
0 голосов
/ 13 февраля 2020

Я хотел бы выделить ячейку, которая является ближайшим значением a 1011 *, но все же ниже (ниже) или равна по формуле.

Например, если у меня 14 в B4, Я хотел бы, чтобы ячейка 13 (или 14) была выделена, но не была 15 в диапазоне.

Значение, которое мне нужно искать, будет в B4, а диапазон, к которому я должен применить формулу выделения, будет L1: L371.

Пока что лучший результат, которого мне удалось достичь, был достигнут (из того, что я смог найти с помощью уже существующего контента в Google или Stackoverflow):

=SMALL($L1:$L317,COUNTIF($L1:$L371,"<="&$B$4))

Хотя, не только он выбирает значение, которое я ищу, он также выбирает все значения, приведенные ниже.

Может кто-нибудь помочь мне, чтобы я мог достичь ожидаемого результата, пожалуйста?

Спасибо за ваше время и помощь, это очень ценится.

1 Ответ

2 голосов
/ 13 февраля 2020

Исходя из вашего описания, кажется, что вам нужно найти максимальное значение диапазона (L1: L137), которое меньше или равно входной переменной (B4), и выделить это значение в диапазоне поиска. В зависимости от того, какая у вас версия Excel, вот что вам нужно сделать:

Для Excel 2019 или Excel 365

Вы можете использовать функцию MAXIFS . На самом деле вы бы поместили эту функцию в правило условного форматирования, но об этом чуть позже. В качестве теста поместите следующий код в ячейку B5:

=MAXIFS($L$1:$L$137,$L$1:$L$137,"<="&$B$4)

Первый аргумент - это ваш «MAX_RANGE», или диапазон, содержащий значения, для которых вы хотите найти максимум. Это также наш "CRITERIA_RANGE", второй аргумент. Третий аргумент - это сам критерий, который заключается в том, что диапазон поиска должен быть меньше или равен значению в ячейке B4. По сути, мы проходим список и создаем подмножество чисел, которые меньше или равны нашему поисковому значению, и отбрасываем остальные. Я предполагаю, что вы знаете об относительных и абсолютных ссылках, так как вы использовали привязку "$" в ссылочном коде. Если нет, вот описание разницы.

Теперь результатом этой формулы должно быть наибольшее число в списке, меньшее или равное поисковому значению, но это не ' Выделите это для нас в нашем списке. Для этого нам нужно условное форматирование. Для этого выделите диапазон данных (L1: L137) и go в раскрывающемся меню условного форматирования на вкладке «Главная» ленты меню. Выберите «Новое правило». В появившемся диалоговом окне выберите «Использовать формулу, чтобы определить ячейки для форматирования». В поле ввода формулы введите:

=L1=MAXIFS($L$1:$L$137,$L$1:$L$137,"<="&$B$4)

Это позволит сравнить, равно ли значение в вычисляемой ячейке (например, L1) результату формулы, о которой мы говорили выше. Поскольку на L1 есть только относительная ссылка, эта формула будет работать для каждой ячейки в диапазоне данных.

Теперь, прежде чем нажать «ОК» в диалоговом окне, нажмите кнопку «Формат». Это позволит вам настроить подсветку и форматирование по своему усмотрению. Нажмите «ОК» в диалоговом окне форматирования, затем «ОК» в диалоговом окне «Условное правило форматирования». Теперь это должно выделить любую ячейку данных, которая точно соответствует результату нашей формулы, а не все, что меньше нашего значения.

Для более ранних версий Excel

Такая же концепция была и в более ранних версиях Excel, но, к сожалению, функция MAXIFS отсутствует в этих версиях. Вместо этого мы должны использовать формулу массива. Формулы массивов - это еще одна банка червей, но ExcelJet - отличный ресурс . Фактически, они говорят об этой самой проблеме, здесь .

К сожалению, мы не можем поместить формулу массива в формулу условного форматирования, как мы делали выше, поэтому нам нужно поместите эту формулу в ячейку на рабочем листе, тогда условная формула должна ссылаться на эту новую ячейку. Таким образом, в ячейку B5, если вы введете:

=MAX(IF(L1:L137=B4,L1:L137)

И затем вместо нажатия Enter , вы должны нажать Ctl + Shift + Enter

Эта комбинация клавиш сообщит Excel, что вы пытаетесь ввести формулу массива. Если вы не нажмете эти клавиши, формула выдаст ошибку. После того, как вы ввели формулу массива, если поместить курсор в ячейку B5, вы увидите, что в строке формул сверху есть фигурные скобки ( {, } ) вокруг формулы выглядеть как

{=MAX(IF(L1:L137=B4,L1:L137)}

Это приводит к тому же результату, что и выше, но просто достигается немного по-другому. Теперь, следуя тому же процессу, который описан выше для условного форматирования, вы просто установите формулу:

=L1=$B$5

И это должно быть! Надеюсь, это поможет!

...