excel中:怎样在每列数据中随机挑选一组组合起来?生成的数据能否不产生重复项?

如:有A列、B列、C列......等等几列,行数有1行、2行、3行......等等几行,组合为:A1、A2、A3、A...,B1、B2、B3、B...,C1、C2、C3、C...,要求列-列固定顺序组合,行-行随机无顺序组合?
列-列的意思是:ABC......等等按此顺序不变组合,不能是BAC或者CBA等改变顺序的;
行-行的意思是:当列是A的时候,可能与行2组合,可能与行1组合,可能和行3组合等等随即组合。

之前的解答为:
=CONCATENATE(INDIRECT("A"&INT(RAND()*21)+1),INDIRECT("B"&INT(RAND()*21)+1),INDIRECT("C"&INT(RAND()*21)+1),INDIRECT("D"&INT(RAND()*21)+1)) 21为行数,可以根据表的具体的行数来更改,这样列数是固定顺序组合的,而行数便是随机的顺序组合了。

能否在此基础之上不产生重复项?
可以仅以三列数据举列

A列 B列 C列
一行 1 2 3
二行 A B C
三行 甲 乙 丙

组合出来的结果为:
123 12C 12丙 1B3 1BC 1B丙.......所有数据不重复。

第1个回答  2013-07-25
增加一个条件语句就行了:
=if(countif($a$1:$d$21,CONCATENATE(INDIRECT("A"&INT(RAND()*21)+1),INDIRECT("B"&INT(RAND()*21)+1),INDIRECT("C"&INT(RAND()*21)+1),INDIRECT("D"&INT(RAND()*21)+1)))=1,CONCATENATE(INDIRECT("A"&INT(RAND()*21)+1),INDIRECT("B"&INT(RAND()*21)+1),INDIRECT("C"&INT(RAND()*21)+1),INDIRECT("D"&INT(RAND()*21)+1)),CONCATENATE(INDIRECT("A"&INT(RAND()*21)+1),INDIRECT("B"&INT(RAND()*21)+1),INDIRECT("C"&INT(RAND()*21)+1),INDIRECT("D"&INT(RAND()*21)+1)))
意思就是在a1:d21中对当前单元格已经产生的内容的个数做判断,如果结果是1,那么执行=CONCATENATE(INDIRECT("A"&INT(RAND()*21)+1),INDIRECT("B"&INT(RAND()*21)+1),INDIRECT("C"&INT(RAND()*21)+1),INDIRECT("D"&INT(RAND()*21)+1)),如果不是1,也执行=CONCATENATE(INDIRECT("A"&INT(RAND()*21)+1),INDIRECT("B"&INT(RAND()*21)+1),INDIRECT("C"&INT(RAND()*21)+1),INDIRECT("D"&INT(RAND()*21)+1))。这样就能保证不重复了,因为一旦某个单元格的内容在这个区域出现两次或以上,就会重算……追问

如果只有三列的话应该怎么弄呢,我刚试着调了一下,但是不行,请您再帮我给个只有三列的公式,谢谢

追答

刚才我那个是在A1:D21这个区域去判断了。
但你的意思可能是在其他区域(比如E1:E21)把A、B 、C、D四列中的数值按照你说的规则取出来show,如果是这样。你只需要把$a$1:$d$21这个区域换成$E$1:$E$21就可以了。

第2个回答  2013-07-25
Sub a()
Dim a%, b%, c%, d%, k&
k = 1
For a = 1 To 21
    For b = 1 To 21
        For c = 1 To 21
            Cells(k, 5) = Cells(a, 1) & "," & Cells(b, 2) & "," & Cells(c, 3)
            k = k + 1
        Next c
    Next b
Next a
End Sub

ALT+F11——F7——粘贴上面的代码。运行。

这是所有3列数的组合。

追问

还是不行,第一,有重复项。第二,有的时候只取出来两个数字

追答本回答被提问者采纳
第3个回答  2013-07-25
你说这么繁冗、别人看着就头疼

excel中:怎样在每列数据中随机挑选一组组合起来?生成的数据能否不产生重...
=if(countif($a$1:$d$21,CONCATENATE(INDIRECT("A"&INT(RAND()*21)+1),INDIRECT("B"&INT(RAND()*21)+1),INDIRECT("C"&INT(RAND()*21)+1),INDIRECT("D"&INT(RAND()*21)+1)))=1,CONCATENATE(INDIRECT("A"&INT(RAND()*21)+1),INDIRECT("B"&INT(RAND()*21)+1),INDIRECT(...

excel如何进行随机分组且不重复excel如何进行随机分组且不重复操作
1. 准备数据:将需要分组的数据按照一定的规则排列在Excel表格中,例如姓名、学号、工号等。2. 添加辅助列:在表格中添加一个辅助列,用于生成随机数。可以使用Excel的RAND()函数来生成随机数,例如在B列中输入“=RAND()”,然后按下回车键。3. 排序数据:将整个表格按照B列中的随机数进行升序排序。

EXCEL如何随机打乱数据不重复随机数来帮忙
语法:rand()-无参数,一对括号即可 结果:[0,1)之间的随机小数,包括0不包括1 由于后面有15位小数,所以基本可以做到随机不重复 有了这个特性,如果我们把他们排序,那么得到的肯定也是随机不重复的数据 比如我们要一组随机不重复的10个数(1-10)br>这里涉及到Rank函数,我们简单介绍一下,他不是今...

EXCEL中怎么随机提取数据,不会出现0,不重复的
1.点击 工具-加载宏,在弹出的加载宏窗口中选定“分析工具库”,确认。2.点击 工具-数据分析,在列表中选择 “抽样”3.如我上传的图片例子,在这个例子里,输入区域里有100个数据,你把这个区域换成你的10000个数据所在的区域,抽样方法中可选择周期性抽样或随机抽样,在输出区域选择输出所抽取随机数...

excel随机抽取名单不重复(excel随机抽取名单不重复怎么办)
在Excel中,如何实现不重复的随机抽取名单?首先,为名单添加序号列,然后使用VLOOKUP和RAND函数来生成随机但不重复的姓名。例如,在E2到H2的单元格中输入公式:=VLOOKUP(RANDBETWEEN(MIN($A:$A), MAX($A:$A)), $A:$B, 2, 0)。这种方法适用于数据范围内的随机抽取。另一种简单的方法是通过“...

EXCEL如何随机组合几个单元格内的文字 且不重复 并说明公式
1、首先点击excel软件。2、然后输入相关信息。3、然后在c1栏输入“=a1&b1”。4、然后敲击回车就完成了一栏。5、然后进行下拉就实现了全部的两个单元格合并为一个单元格。EXCEL就可以随机组合几个单元格内的文字且不重复并说明公式了。

怎么对EXCEL中的数据进行筛选并提取其中不重复的记录
1.第一步,将要进行筛选的数据用excel2016打开并选中操作的数据范围。2.第二步,在页面上方的菜单栏中选择数据选项。3.第三步,在下方选项卡中点击排序和筛选类别下的高级选项。4.第四步,在高级选项的窗口中选择将筛选结果复制到其他位置。5.第五步,在下方找到复制到选项,再点击右侧的定位按钮。6...

excel如何随机不重复抽取一组数据
这里举个简单的例子 假如有名字51个,在A列 现在D列按你的要求把它们打乱排序 输入 数组公式,输完后 按CRTL+SHIFT+ENTER =INDEX(A$1:A$51,LARGE(IF(ISNA(MATCH(A$2:A$51,D$1:D1,)),ROW(A$2:A$51)),1+INT(ROWS(A1:A$50)*RAND()))...

怎样在Excel中随机抽取N行数据,且抽取的所有数据中需要排除任意几个数...
首先把4000个单词全部放到A列去(这样做的话好写公式)B1输入=RAND() ;C1输RANK(B1,$B$1:$B$4000) 选择B1 C1 公式往下拉到4000:这个时候C列的数就是1~4000,没有重复 按照这个 来制作表的话不会重复,直接用随机函数会出现重复的情况!

excel怎么批量选出重复出现的数据?
一、高级筛选 Excel自带的高级筛选功能,可以快速将数据列中的重复数据删除,并筛选保留不重复的数据项,十分的便利实用。步骤:选中需要进行筛选的目标数据列,点击【数据】菜单栏,点击【高级筛选】,选中【在原有区域显示筛选结果】,勾选【选择不重复的记录】,单击【确定】即可。二、自动筛选 自动筛选...

相似回答