Excel中,如何随机返回一个值,从已有的数组里,如从(value1,value2,value3,value4,value5,value6....)中取一

Excel中,如何随机返回一个值,从已有的数组里,如从(value1,value2,value3,value4,value5,value6....)中随机取一个值.

用RAND函数,随机从1-n当中取值,然后就用函数返回数组元素n的值,就可以了。追问

可以具体写一下吗?

追答

那你要先给出你的代码,我才好给你改。如果让我给你写,未必满足你的要求啊。
你是打算用公式还是用VBA?
你是自己有了代码不知道怎么随机取数还是根本没有代码?问题描述要详细些才好回答。

追问

我有个思路是这样的.
有两个表,表1,表2

表2有两列内容如下:
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i

现在在表1某列里,用vlookup函数随机调取表2的内容.

我不会怎么写这个函数.
vlookup我不是很会用,大概这样
vlookup(int(rand()*10+1),x,2,z)

x和z代表区域和T/F
但该具体怎么写?

追答

=INDIRECT("Sheet2!A"&TEXT(RAND()*(COUNT(Sheet2!A:A)-1)+1,0%))
假如你在Sheet1中输入这个公式,这个公式的作用就是从Sheet2的A列中所有的数里面随机选取一个了。

如果你想要选取其他列的,比如B列,那就把公式中的A都替换成B。

如果你要选取的不是数字而是文字,那就把公式里面的COUNT换成COUNTA,但是如果你有表头就比较麻烦了,需要根据具体表格形式再做处理。

这么选出来的随机数是平均分布的,可能有重复,如果你不想重复还要更复杂的处理。

你要是想在Sheet1的A列选择Sheet2的A列的任意数据,那就把这个公式复制到Sheet1的A1中,然后向下拖动,Sheet2的A列有多少数据,你在Sheet1的A列中就拖动到多少行,就可以整列都随机选取了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-25
=int(rand*1+99), 这个公式的意思是随机取1到100的数值
第2个回答  2011-10-25
把问题作为内容(邮件主题一定要包含excel字样)、样表(请特别注意:要03版的,把现状和目标效果表示出来)作为附件发来看下 [email protected]
第3个回答  2011-10-25
=CHOOSE(INT(RAND()*x)+1,value1,value2,value3.....)
有多少数值,x就换成多少。
相似回答