如何在Excel中随机化大量行?
For example I have an excel sheet with data in 3 rows.
1 A dataA
2 B dataB
3 C dataC
I want to randomize the row order. For example
2 B dataB
1 A dataA
3 C dataC
我可以使用= RAND()创建一个新列并使用随机数填充它,并根据该列进行排序。
但这是最好的方法吗?兰德公式将提供最多a million random numbers,我有25万行,所以看起来它会起作用。
谢谢
我搜索了一下,当this answer about randomizing columns接近时,它似乎有点矫枉过正。
答案 0 :(得分:56)
也许整个列中充满了随机数并不是最好的方法,但似乎最像@mariusnn提到的那样实用。
就此而言,这让我在Office 2010中踩了一段时间,虽然通常像the one in lifehacker这样的答案,但我只是想分享一个额外的步骤,使数字变得独一无二:
=rand()
- 这将生成0到1之间的随机数使用该公式填充列。最简单的方法可能是:
现在你应该有一列相同的数字,即使它们都是随机生成的。
这里的诀窍是重新计算它们!转到公式标签,然后点击立即计算(或按F9)。
现在,该列中的所有数字实际上都是随机生成的。
转到主页标签,然后点击排序&过滤。选择您想要的任何订单(最小到最大或最大到最小) - 无论哪个订单都会为您提供与原始订单相关的随机订单。然后在排序警告提示您展开选择时单击确定。
您的列表现在应该是随机的!如果需要,你可以删除随机数列。
答案 1 :(得分:8)
我通常按照你的描述做:
添加一个具有随机值(=RAND()
)的单独列,然后对该列执行排序。
可能是更复杂和更漂亮的方式(使用宏等),但这对我来说足够快和简单。
答案 2 :(得分:1)
这是一个允许您在列中随机播放选定单元格的宏:
Option Explicit
Sub ShuffleSelectedCells()
'Do nothing if selecting only one cell
If Selection.Cells.Count = 1 Then Exit Sub
'Save selected cells to array
Dim CellData() As Variant
CellData = Selection.Value
'Shuffle the array
ShuffleArrayInPlace CellData
'Output array to spreadsheet
Selection.Value = CellData
End Sub
Sub ShuffleArrayInPlace(InArray() As Variant)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' ShuffleArrayInPlace
' This shuffles InArray to random order, randomized in place.
' Source: http://www.cpearson.com/excel/ShuffleArray.aspx
' Modified by Tom Doan to work with Selection.Value two-dimensional arrays.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim J As Long, _
N As Long, _
Temp As Variant
'Randomize
For N = LBound(InArray) To UBound(InArray)
J = CLng(((UBound(InArray) - N) * Rnd) + N)
If J <> N Then
Temp = InArray(N, 1)
InArray(N, 1) = InArray(J, 1)
InArray(J, 1) = Temp
End If
Next N
End Sub
您可以阅读评论以了解宏正在做什么。以下是安装宏的方法:
现在你可以分配&#34; ShuffleSelectedCells&#34;宏到图标或热键可以快速随机化所选行(请记住,您只能选择一行行。)
答案 3 :(得分:0)
使用 Excel Online (Google Sheets)。并为 Google Sheets 安装 Power Tools。然后在 Google Sheets 中转到 Addons 选项卡并启动 Power Tools。然后从 Power Tools 菜单中选择 Randomize
。选择Shuffle
。然后在 Excel 表中选择您的测试选项。然后选择 Cells in each row
并从 Power Tools 菜单中单击 Shuffle
。这将彼此独立地随机打乱每一行的选定单元格。