不是很明白题主的要求,主要是对什么情况不能再没理解透。是不是任意行任意列都只能取一次,就是5个数必须5列中各取一个,且均不同行?
如果是,仍然有一个如何确定是达到了目的的问题,因为所给的数据存在大量重复数据,即使取自不同的行和列,单看结果,也无法确定是否是按要求的取的数。所以下面的解答中,先在G1:K1中用公式确定从哪些单元格取数(公式的结果用R1C1引用方式,即R后的数字表示第几行,C后面的数字表示第几列)
因为随机取数,要达到上面的目的,就要取数确定,不再变化。所以要先在选项的公式选项卡中勾选“启用迭代计算”后确定,且因为循环计算次数较多,要把循环次数设置得大一些,如10000。主要是因为正好5列,每列都要取到且不重复,导致随机循环计算量大。
确定取数的单元格位置:
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
图中数据是复制的题主提问中的数据。
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结束公式输入
下拉填充
1、可以用VBA程序来解决。
2、先用循环。每一次循环选取每行的一个数字。
3、至于选哪个可以用随机数函数来决定。
4、一次循环结束后就是想要的值。
5、可以上传附件到论坛,让网友帮助解答。
使用公式即可