设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4137|回复: 8
打印 上一主题 下一主题

OfficePK第12期:Excel挑战Access,快速生成不重复随机数

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2016-4-2 20:49:48 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
在Excel里生成随机数没什么,但要生成不重复的随机数有点麻烦,不过,再怎么麻烦,还是可以生成的。

于是就挑战一下Access吧,如何在Access中快速生成不重复的随机数。

Excel我会提供三种解法,叠代法、数组法和一个BT的简单方法,先悬念一下,过两天再来写。有知道各种解法的,也欢迎跟贴,这样我可以省点事。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
 楼主| 发表于 2016-4-8 20:08:29 | 显示全部楼层
将ID设置成随机,这个我会了,其他的……还是不会……我承认我是笨妖。

点击这里给我发消息

3#
 楼主| 发表于 2016-4-8 20:24:25 | 显示全部楼层
好吧,下来面看看Excel的解法。
第一种,迭代法。
把下面这个公式写在B2单元格里。
  1. =IF(COUNTIF(B$2:B$11,A1)=1,A1,RANDBETWEEN(1,100))
复制代码

不过,按下回车,会被提示“循环错误”,所以还需要启用迭代计算:【文件】》【选项】》【公式】》勾选【启用迭代计算】/【最多迭代次数】改为1
如附件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

4#
 楼主| 发表于 2016-4-8 20:31:52 | 显示全部楼层
第二种,数组法。
既然是数组法,那就是用数组公式了,这公式还是写在B2单元格里:
  1. =SMALL(IF(COUNTIF(B$1:B1,ROW($1:$10))=0,ROW($1:$10)),INT(RAND()*(10-ROW(A1))+1))
复制代码

如附件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

5#
 楼主| 发表于 2016-4-10 17:06:38 | 显示全部楼层
第三个BT法,不说了,直接上视频

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 17:05 , Processed in 0.091580 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表