如何随机化Excel行

如何随机化Excel行,excel,random,Excel,Random,如何在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()用随机数填充它,然后根据该列进行排序 但这是最好的方法吗?兰德方程将提供多达25万行,我有25万行

如何在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()用随机数填充它,然后根据该列进行排序

但这是最好的方法吗?兰德方程将提供多达25万行,我有25万行,所以它似乎可以工作

谢谢


我搜索了一下,虽然很接近,但似乎有点过头了

我通常按照你的描述做:
添加一个带有随机值的单独列(
=RAND()
),然后对该列执行排序


可能是更复杂、更漂亮的方法(使用宏等),但这对我来说足够快和简单。

也许整列都是随机数并不是最好的方法,但它可能是@mariusn提到的最实用的方法

在这一点上,这让我在Office 2010工作了一段时间,虽然答案通常都像工作一样,但我只想分享一个额外的步骤,让数字变得独一无二:

  • 在要随机化的列表旁边创建一个新列
  • 在新列的第一个单元格中键入
    =rand()
    ——这将生成一个介于0和1之间的随机数
  • 用这个公式填充这个列。最简单的方法可能是:

    • 沿着新列向下移动,直到最后一个要随机化的单元格
    • 按住Shift键并单击最后一个单元格
    • 按Ctrl+D组合键
  • 现在应该有一列相同的数字,即使它们都是随机生成的

    这里的诀窍是重新计算它们!转到“公式”选项卡,然后单击“立即计算”(或按F9)

    现在,列中的所有数字实际上都是随机生成的

  • 转到“主页”选项卡并单击“排序和筛选”。选择您想要的顺序(从最小到最大或从最大到最小)-任何一个都会给您一个相对于原始顺序的随机顺序。然后,当排序警告提示您展开选择时,单击“确定”

  • 你的名单现在应该随机化了!如果需要,可以去掉随机数列


  • 这是一个宏,允许您在列中洗牌选定的单元格:

    选项显式
    子ShuffleSelectedCells()
    '如果只选择一个单元格,则不执行任何操作
    如果Selection.Cells.Count=1,则退出Sub
    '将所选单元格保存到数组
    Dim CellData()作为变量
    CellData=Selection.Value
    “洗牌
    ShuffleArrayInplaceCellData
    '将数组输出到电子表格
    Selection.Value=CellData
    端接头
    子ShuffleArrayInPlace(InArray()作为变体)
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    “我在原地
    “这会将InArray随机排列,随机化到位。
    资料来源:http://www.cpearson.com/excel/ShuffleArray.aspx
    '由Tom Doan修改以使用Selection.Value二维数组。
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    只要_
    N只要_
    变型温度
    “随机化
    对于N=LBound(InArray)到UBound(InArray)
    J=CLng(((UBound(inaray)-N)*Rnd)+N)
    如果J N那么
    温度=InArray(N,1)
    伊纳雷(N,1)=伊纳雷(J,1)
    InArray(J,1)=温度
    如果结束
    下一个
    端接头
    
    您可以阅读注释以查看宏正在执行的操作。以下是如何安装宏:

  • 打开VBA编辑器(Alt+F11)
  • 右键单击当前打开的电子表格下的“ThisWorkbook”(在“VBAPProject”后面的括号中列出),然后选择“插入/模块”
  • 粘贴上面的代码并保存电子表格

  • 现在,您可以将“ShuffleSelectedCells”宏指定给图标或热键,以快速随机选择所选行(请记住,您只能选择一列行)。

    使用Excel Online(谷歌工作表)。。并为Google Sheets安装。。然后在谷歌的工作表中,进入插件选项卡,开始使用电动工具。然后从电动工具菜单中选择随机化。选择洗牌。然后在excel工作表中选择测试选项。然后选择每行的
    单元格
    ,然后从电动工具菜单中单击
    洗牌
    。这将使每一行的选定单元格相互独立地洗牌。

    这是一种非常简单的方法,如果不需要的话,无需使其复杂化。我通常会添加一个带有随机值的单独列(
    =RAND()
    ),然后对该列执行排序。不确定这是最好的还是最快的方法,但肯定只起作用。
    RAND
    对大约一百万个数字的限制只适用于早期版本的Excel。自Excel 2003以来,这一问题已得到解决。看到或。。。只需在单个单元格上使用
    =rand()
    ,然后双击所选单元格右下角的小点即可将其应用于整个列。