여기에 적절한 MinIfs 기능이 있습니다. 아래에 MinIfs (최소 범위, 범위 1, 조건 범위 1 [범위 1 + i, 조건 범위 1 + i] 참조)가 만들어졌습니다.
최소값을 정의했으면 x 열의 각 셀을 반복하고 a 또는 b를 테스트 한 다음 해당 y 셀을 MinIfs 값으로 채 웁니다.
'Define MinIfs function
Function MinIfs(MinRange As Range, ParamArray Criteria() As Variant) As Variant
Dim n As Long
Dim i As Long
Dim c As Long
Dim f As Boolean
Dim w() As Double
Dim k As Double
Dim z As Variant
'Error if less than 1 criteria
On Error GoTo ErrHandler
n = UBound(Criteria)
If n < 1 Then
'too few criteria
GoTo ErrHandler
End If
'Define k
k = 0
'Loop through cells of Min range
For i = 1 To MinRange.Count
'Start by assuming there is a match
f = True
'Loop through conditions
For c = 0 To n - 1 Step 2
'Does cell in criteria range match condition?
If Criteria(c).Cells(i).Value <> Criteria(c + 1) Then
f = False
End If
Next c
'Define z
z = MinRange
'Were all criteria satisfied and value to be preserved is numeric?
If f And IsNumeric(z(i, 1)) Then
k = k + 1
ReDim Preserve w(k)
w(k) = z(i, 1)
End If
Next i
MinIfs = Application.Min(w)
Exit Function
ErrHandler:
MinIfs = CVErr(xlErrValue)
End Function
질문이 있으시면 언제든지 문의하십시오.
Diedrich
VBA를 사용하고 있으므로 현재 방법을 게시 할 수 있습니까? (나는 당신이'MinIf()'부분을 어떻게하는지 궁금해.) 또한, VBA가 아닌 해결책에 관심이 있으십니까? – Smandoli
아직 MinIf를 작성하지 않았지만 할 수 있습니다. 또한 http://www.bettersolutions.com/excel/EIK284/LN318711811.htm에 있습니다. 불행히도 나는 VBA만을 사용하는 제약이있다. 다른면에서는 SQL을 사용할 수있다. – earthlink
또 다른 옵션은 VBA 나 SQL을 사용하지 않는 배열 수식입니다. 이것은 실제로 내 질문이었습니다 - Excel 수식이 아닌 이유는 무엇입니까? 허용되는 경우 http://superuser.com/a/764447/52833을 참조하십시오. – Smandoli