请教EXCEL怎么打乱每一行的数据

请教EXCEL怎么打乱每一行的数据,如图1中,我要将句子分段打乱作为题目,有太多行了,用“=RAND()”按行排列的方法不行,这样只是把ABCDE列的顺序随机交换,如图2B列全是句末,我要的是各行都随机乱序,像图3的样子
图1

图2

图3

当然是要用到RAND函数的,但要每一行分别生成四个随机数。

下面使用五个辅助列F-J列,用于随机生成每一行的排序。

F2=INT(RAND()*5)+1

      生成第一个数的位置。从1-5(五列)中随机生成一个数。

G2=MID(SUBSTITUTE("12345",F2,""),INT(RAND()*4)+1,1)

      生成第二个数的位置,从1-4(剩下四列)中随机生成一个数。

H2=MID(SUBSTITUTE(SUBSTITUTE("12345",F2,""),G2,""),INT(RAND()*3)+1,1)

      生成第三个数的位置。

I2=MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("12345",F2,""),G2,""),H2,""),INT(RAND()*2)+1,1)

       生成第四个数的位置。

J2=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("12345",F2,""),G2,""),H2,""),I2,"")

      生成最后一个数的位置。

然后,

K2=INDEX($A2:$E2,F2)

将K2公式向右拉到O2,根据F-J的值,从A-E列取数。


最后,将F2-O2的公式向下复制即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-21
因为随机数会有可能出现相同的数字,所以用公式基本实现不了的,用VBA吧!可以进行随机数的唯一出现!
第2个回答  2013-05-21
行排序+列排序+行排序+列排序 应该就相当相当乱了~~追问

不太明白,这样做后每一行还能组成一个句子么?

追答

如果每一行还要组成一个句子,那就用行排序就得了~~~~

追问

这样会出现图2的结果,导致每一行的数据结构都一样,就像B列全都是句末一节,而且这样做还不如直接剪切、粘贴来的快。

追答

我指是的各行独立排序,这样就不会都一样的了。你再录制一个宏,让每一行都循环一遍,最后肯定都是乱乱的~~~~ ^_^

追问

不明白宏是怎么的,麻烦你给详细说下步骤,好吗?谢谢、谢谢、非常感谢!

相似回答