比较数组,找出不符合规则的值?
数据源
PP-C
450-40
500-44
600-54
700-36
800-38
900-40
1000-42
1200-48
1400-52
1600-58
人工跟踪数据,找出的目标需求的规则是
当PP=450的C=40时
PP= 700时C=36
PP= 800时C=38
也就是找出C=40以后,小于40的C,C=36,C=38
**************************************
编了个小程序
Sub ll()
Dim Arr, oArr, Str As Double, Str1
Arr = Array(32, 40, 44, 54, 36, 38, 40, 42, 48, 52, 58)
oArr = Array(400, 450, 500, 600, 700, 800, 900, 1000, 1200, 1400, 1600)
''
For ii = 0 To UBound(Arr)
Str = Arr(ii)
For jj = ii + 1 To UBound(Arr)
If Str > Arr(jj) Then
Debug.Print ii, "→", Str, "→", oArr(jj), "→", Arr(jj)
End If
Next jj
Next ii
End Sub
*************************
其结果是
1 → 40 → 700 → 36
1 → 40 → 800 → 38
2 → 44 → 700 → 36
2 → 44 → 800 → 38
2 → 44 → 900 → 40
2 → 44 → 1000 → 42
3 → 54 → 700 → 36
3 → 54 → 800 → 38
3 → 54 → 900 → 40
3 → 54 → 1000 → 42
3 → 54 → 1200 → 48
3 → 54 → 1400 → 52
请问:各位高手还有其它的解法?谢谢和。
[解决办法]
我从你处理的结果理解,你要求 PP 值和 C 值同步增长。
如果你的 PP 值是单调递增的,就可以简化:
Dim dblMaxC As Double
For i = 0 To Ubound(Arr)
If Arr(i) > dblMaxC Then
dblMaxC = Arr(i)
Else
Debug.Print oArr(i), Arr(i)
End If
Next i