
Excel中,由952组数据中随机抽取360组不重复的数据。
开启分步阅读模式
工具材料:
安装Excel程序的电脑
*** 作方法
01
如果数据在Sheet2 的A:D列,在Sheet2的A列前插入两列辅助列;
02
在左上角的名称框中,输入A2:A953,按Enter键,将A2:A953单元格选中,输入=RAND(),按Ctrl+Enter组合键结束,快速向A2:A953单元格中输入随机数(随机数的重复机率极低);
03
在B2单元格输入以下公式,然后向下填充公式,得到A列数据的排名(同样没有重复排名)
=RANK(A2,A:A)
04
在Sheet1的A2单元格输入以下公式,然后向右向下填充公式到D361单元格,得到由Sheet2工作表中随机取得的不重复的360行数据
=VLOOKUP(ROW()-1,Sheet2!$B:$F,COLUMN(B1),0)
公式表示:以当前行号在Sheet2的B列精确匹配对应行,并返回对应第2列(Sheet2的C列)数据。
05
因随机取数时,工作表只要输入一个数据,就会在“自动计算”中 重新得到一组数据,因此,可以将Sheet2的A列,“复制”并“选择性粘贴”为“数值”,避免数据不断变换。或者将“公式”选项中的“计算选项”设置为“手动”。
特别提示
通过RANDBETWEEN函数得到随机函数的方法,会出现重复数据,从而达不到既随机又唯一取数的目的,没有RAND得到一列不重复的随机数再排名来得科学有效。
思路:
1、生成随机数,与范围相乘;
2、判断已生成的数是否存在,若不存在则添加到原数组中,若存在则继续重新生成;
3、判断已生成数量,达到要求则停止生成。
曾经帮别人答过,代码如下:
#include <stdioh>
#include <stdlibh>
#include <timeh>
int main()
{
int nAppValue, nUserValue, iCount = 0;
srand( time( 0 ) );
nAppValue = rand() % 100 + 1;
printf( "请猜我选中的是哪个数字(1-100)\n" );
do
{
scanf( "%d", &nUserValue );
++iCount;
if( nUserValue == nAppValue )
{
printf( "猜了%d次, 猜中了!\n",iCount );
break;
}
else if( nUserValue > nAppValue )
{
printf( "错了!再小点, 继续猜!\n" );
}
else
{
printf( "错了!再大点!继续猜!\n" );
}
}while(1);
printf( "游戏结束!\n" );
return 0;
}
以上就是关于如何做一个excel抽签,而且抽过的内容不再被第二次抽出全部的内容,包括:如何做一个excel抽签,而且抽过的内容不再被第二次抽出、labview如何抽取不重复的随机数、C语言程序设计:用电脑设计一个猜数游戏,电脑从1-100中随机选一个数让玩家猜,如果玩家猜错了电脑等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)