用excel函数随机选取数值并且不重复

A列B列C列D列E列66205701185782026462709861758522320968153718463313014073501369216用excel函数从这... A列 B列 C列 D列 E列
6 6 2 0 5
7 0 1 1 8
5 7 8 2 0
2 6 4 6 2
7 0 9 8 6
1 7 5 8 5
2 2 3 2 0
9 6 8 1 5
3 7 1 8 4
6 3 3 1 3
0 1 4 0 7
3 5 0 1 3
6 9 2 1 6

用excel函数从这五列中随机选取五个数字出来,并且,如果第一行选取了A列的数字,那么第一行的其他列的数字不可以再选取,在A列中如果选取了第三行的数字,那么A列中其他行的数字也不能再选取,用函数怎么写呢?谢谢各位高手
展开
 我来答
退休画线工
2019-01-21 · 知道合伙人软件行家
退休画线工
知道合伙人软件行家
采纳数:5410 获赞数:27003
1981年毕业于湖南大学,从事化工设计30多年,精于工程设计

向TA提问 私信TA
展开全部

不是很明白题主的要求,主要是对什么情况不能再没理解透。是不是任意行任意列都只能取一次,就是5个数必须5列中各取一个,且均不同行?

如果是,仍然有一个如何确定是达到了目的的问题,因为所给的数据存在大量重复数据,即使取自不同的行和列,单看结果,也无法确定是否是按要求的取的数。所以下面的解答中,先在G1:K1中用公式确定从哪些单元格取数(公式的结果用R1C1引用方式,即R后的数字表示第几行,C后面的数字表示第几列)

  1. 因为随机取数,要达到上面的目的,就要取数确定,不再变化。所以要先在选项的公式选项卡中勾选“启用迭代计算”后确定,且因为循环计算次数较多,要把循环次数设置得大一些,如10000。主要是因为正好5列,每列都要取到且不重复,导致随机循环计算量大。

  2. 确定取数的单元格位置:

G1=IF(OR(G1={"",0}),ADDRESS(RANDBETWEEN(1,13),RANDBETWEEN(1,5),1,0),G1)

H1=IF(OR((H1={"",0}),RIGHT(H1)=RIGHT($G1:G1),LEFT(H1,3)=LEFT($G1:G1,3)),ADDRESS(RANDBETWEEN(1,13),RANDBETWEEN(1,5),1,0),H1)

同时按Ctrl+Shift+Enter三键输入数组公式,右拉到K1

观察是否还有重复的行号或列顺序号,如有,按F9,直到没有重复后再按F9也不会发生变化。这样就在G1:K1中确定要引用数据的单元格位置。且这些位置既是随机确定的,又保证没有重复的行和列。

3. 在G2:K2中从A1:E13中引用G1:K1确定的引用位置的数据:

G2=INDIRECT(G1,)

右拉到K2

图中数据是复制的题主提问中的数据。

追答

不用R1C1引用也是可以的,原来考虑要判断行的顺序号和列的顺序号不能相等,就考虑用R1C1引用,行和列都用数字来表示,以确定是否与前面的行号或列号有相等的。其实,文本一样可以判断是否相等,所以可以不用R1C1引用:

G1=IF(OR(G1={"",0}),ADDRESS(RANDBETWEEN(1,13),RANDBETWEEN(1,5),4),G1)

H1==IF(OR((H1={"",0}),MID(H1,2,2)=MID($G1:G1,2,2),LEFT(H1)=LEFT($G1:G1)),ADDRESS(RANDBETWEEN(1,13),RANDBETWEEN(1,5),4),H1)

同时按Ctrl+Shift+Enter三键输入数组公式,右拉到K1

G2=INDIRECT(G1)

右拉到K2

在F1是空白单元格的前提下,也可以只用的一个公式:

G1=IF(OR((G1={"",0}),MID(G1,2,2)=MID($F1:F1,2,2),LEFT(G1)=LEFT($F1:F1)),ADDRESS(RANDBETWEEN(1,13),RANDBETWEEN(1,5),4),G1)

同时按Ctrl+Shift+Enter三键输入数组公式,右拉到K1

xg7tf1
2019-01-20 · TA获得超过4422个赞
知道大有可为答主
回答量:7559
采纳率:22%
帮助的人:947万
展开全部
1.选中A列 数据 筛选 高级筛选
勾选 选择不重复的记录
可将筛选结果复制到B1为首的B列。
2.公式法
在B1中输入或复制粘贴此公式
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$16,$A$1:$A$16,)=ROW($1:$16),ROW($1:$16),65536),ROW(A5)))&""
按CTRL+SHIFT+ENTER结束公式输入
下拉填充
追问
兄弟啊,你这样就把A列中重复的数字去掉了,但是我不想去掉,我是想随机选取单元格,而且选取的单元格不重叠
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友51266d27
2019-01-21 · TA获得超过6934个赞
知道大有可为答主
回答量:3718
采纳率:55%
帮助的人:504万
展开全部
1、可以用VBA程序来解决。
2、先用循环。每一次循环选取每行的一个数字。
3、至于选哪个可以用随机数函数来决定。
4、一次循环结束后就是想要的值。
5、可以上传附件到论坛,让网友帮助解答。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江西新华电脑学院
2019-01-21 · 品牌创于1988,专注IT教育
江西新华电脑学院
江西新华电脑学院开设电子商务、软件开发、电竞、动漫设计、UI设计、室内设计、网络工程、互联网财务、VR等专业。 来校参观报销路费,报名享受国家学费减免政策,签订就业合同,毕业推荐高薪工作。
向TA提问
展开全部
使用公式即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式