我目前正在指派我的组织成员与其他观点成员会面。我有三个标准:
我在Excel中尝试过随机名称/数字生成器:
=INDEX($A:$A,RANDBETWEEN(1,COUNTA($A:$A)),1)
......虽然有用,但并不能确保每个观点都与6个不同的当前成员相遇,或者没有当前的成员遇到过两次。
我还添加了一个图表,我想红色是透视成员,蓝色是当前成员,绿色是我对这些对进行排序的位置(基于当前成员)。
请帮助我,我完全不知道如何做到这一点。
答案 0 :(得分:1)
有很多方法可以随机化列表...
使用excel-vba的一种方法是遍历工作表上的选定(突出显示)单元格,使用单元格值以随机顺序填充数组,然后将原始值替换为数组值:
Sub randomizeSelection()
Dim arrOut() As String
Dim x As Integer, n As Integer
Randomize 'reseed random number generator
With Selection '"Using the selected (highlighted) cells..."
ReDim arrOut(1 To .Count) 'set array to same size as selection
'make sure multiple cells are selected
If .Count <= 1 Then
MsgBox "Must select at least 2 cells to randomize."
Exit Sub
End If
For x = 1 To .Count 'loop through selection
Do
n = Int(Rnd() * .Count) + 1 'pick random position in array
Loop Until arrOut(n) = "" 'if position is 'occupied' then repeat loop
arrOut(n) = .Item(x) 'store item in the new (random) position
Next x
'repopulate selection with items from [arrOut]
For x = 1 To .Count
.Item(x) = arrOut(x)
Next x
End With
End Sub
MSDN:Rnd Function(VBA)
MSDN:Randomize Statement(VBA)
随机化列表(不使用VBA)的另一种方法是使用附加(“帮助”)列或行,以及Excel的内置排序功能。