Поиск наименьшего четного значения (Microsoft Excel)
У Эмина есть диапазон ячеек, в котором может быть текст или числа.
Ему нужен способ определить наименьшее четное число в диапазоне. Эмин задается вопросом, можно ли это сделать с помощью формулы или ему нужна функция, определяемая пользователем.
Есть несколько способов решить эту проблему. Один из способов, который вы можете попробовать, — это использовать функцию DMIN. Все, что вам нужно, — это убедиться, что у вас есть заголовок в столбце данных (например, «Мои данные»), а затем создать небольшое поле критериев в каком-нибудь недоступном месте. Например, вы можете создать поле критериев, поместив заголовок (например, «Min Even») в ячейку F1 и поместив формулу = ISEVEN (MyData) в ячейку F2. Ячейка F2 оценивается как #VALUE! ошибка, но в данном случае это нормально. Затем вы можете использовать следующую формулу в другой ячейке:
=DMIN(A1:A100, 1, F1:F2)
При желании вы можете использовать формулу массива для определения наименьшего четного значения. Однако, поскольку диапазон данных может содержать как текст, так и числа, не все формулы массива будут работать. Например, следующее приведет к ошибке, если в диапазоне данных есть что-нибудь, кроме чисел:
=MIN(IF(MOD(A1:A100,2)=0,A1:A100))
Чтобы убедиться, что вы не получаете ошибок, вам нужно проверить формулу:
=MIN(IF(ISNUMBER(A1:A100),IF(NOT(MOD(A1:A100,2)=0),"",A1:A100)))
Опять же, помните, что это формула массива, поэтому вам нужно ввести ее, используя Shift + Ctrl + Enter.
При желании вы можете создать определяемую пользователем функцию, которая будет возвращать желаемое значение:
Function MinEven(rng As Range) Dim rCell As Range Dim bNotFound As Boolean Application.Volatile MinEven = 9.99 * 10 ^ 307 bNotFound = True For Each rCell In rng If Application.WorksheetFunction.IsNumber(rCell) Then If rCell Mod 2 = 0 Then If rCell < MinEven Then MinEven = rCell bNotFound = False End If End If End If Next If bNotFound Then MinEven = CVErr(xlErrNum) End Function
Чтобы использовать этот макрос, просто используйте следующую строку с ячейкой вашего рабочего листа:
=MinEven(A1:A100)
Если в диапазоне нет четных чисел, функция вернет ошибку #Num.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (119) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Finding_the_Smallest_Even_Value [Поиск наименьшего четного значения]
.