====== Microsoft Excel - Macros - Count - Count Binary ====== ' Binary Count of array. ' Returns the number of vCrit found within the array oArrWithCrit. Function ArrayCountIf(oArrWithCrit As Variant, vCrit As Variant) Dim low As Long low = LBound(oArrWithCrit) Dim high As Long high = UBound(oArrWithCrit) Dim i As Long Dim J As Long Dim result As Boolean ArrayCountIf = 0 Do While low <= high i = (low + high) / 2 If vCrit = oArrWithCrit(i, 1) Then ArrayCountIf = ArrayCountIf + 1 ' Now that found run sequentially while same value J = i - 1 i = i + 1 Do While (i <= high) If vCrit = oArrWithCrit(i, 1) Then ArrayCountIf = ArrayCountIf + 1 i = i + 1 Else Exit Do End If Loop Do While (J >= low) If vCrit = oArrWithCrit(J, 1) Then ArrayCountIf = ArrayCountIf + 1 J = J - 1 Else Exit Do End If Loop Exit Do ElseIf vCrit < oArrWithCrit(i, 1) Then high = (i - 1) Else low = (i + 1) End If Loop End Function