yqdaqinqin 发表于 2013-4-5 14:51
非常完美!!!
应该不算完美 id | 值 | 1 | 0.5 | 2 | 0.6 | 3 | 0.7 | 2 | 0.2 | 3 | 0.11 | 4 | 0.33 | 1 | 0.4 | 2 | 0.62 | 3 | 0.31 | 3 | 0.31 | 3 | 0.31 | 2 | 0.62 |
以上数据只有第2和第5 是正确的.
还有我的代码还需修改,只考虑最大值4 没有考虑 最小值不是1 ,假如是2或3的情况.
- Sub kagawa3()
- Dim i&, j&, k&, m&, n&, r&, t&
- m = Range("A65536").End(3).Row - 1
- arr = Range("A2").Resize(m, 2)
- For i = 1 To m
- If arr(i, 1) > n Then n = arr(i, 1) '取得最大值
- If arr(i, 1) <= k Then j = j + 1 '取得组合数
- k = arr(i, 1)
- Next
- t = n * (j + 1) + j '取得数组实际大小
- ReDim brr(1 To t, 1)
- k = 0
- j = 0
- For i = 1 To t
- r = r + 1
- brr(i, 0) = r
- If r > n Then
- brr(i, 0) = ""
- r = 0
- End If
- If i <= m Then
- If arr(i, 1) <= k Then
- j = j + 1
- End If
- brr(j * (n + 1) + arr(i, 1), 1) = arr(i, 2)
- k = arr(i, 1)
- End If
- Next
- Range("D1").Resize(t, 2) = brr
- End Sub
复制代码
|