Emin دارای طیف وسیعی از سلول ها است که در آنها می تواند متن یا اعداد وجود داشته باشد. او به راهی برای تعیین کوچکترین عدد زوج در محدوده نیاز دارد. امین از خود میپرسد که آیا این کار را میتوان با یک فرمول انجام داد، یا آیا او به یک تابع تعریفشده توسط کاربر نیاز دارد.
چند راه برای حل این مشکل وجود دارد. یکی از روش هایی که می توانید امتحان کنید استفاده از تابع DMIN است. تنها چیزی که شما نیاز دارید این است که مطمئن شوید که یک هدر در ستون داده های خود دارید (مانند MyData) و سپس یک فیلد معیار کوچک در جایی خارج از مسیر ایجاد کنید. به عنوان مثال، ممکن است بخواهید با قرار دادن یک هدر (مانند "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 را برمیگرداند.