工作需要,需要excel生成随机数,但随机数需要概率出现,比如:14-16的随机数,但需要满足14-14.5,14.5-15.5,15.5-16出现的概率为10%,80%,10%的要求。

先上结果:

=IF(MATCH(RAND(),{0,0.1,0.9})=2,ROUND(RAND()+14.5,1),IF(RAND()>0.5,ROUND(RAND()*0.5+14,1),ROUND(RAND()*0.5+15.5,1)))

这里有几个公式:

1、先说最核心的match()

用法:MATCH(lookup_value, lookup_array, [match_type])

说明:在lookup_array 中搜索lookup_value ,并返回对应的位置。但这里重点在match_type,可以取三个值:-1,0,1。1为缺省值,MATCH 查找小于或等于 lookup_value 的最大值。

如:=MATCH(0.4,{0,0.1,0.9}),表示在{0,0.1,0.9}中查找小于或等于0.4的最大值,即0.1。0.1在数组中位于第2位,则这个公式的结果为2。

lookup_value 不同取值,可以列出以下表格:

A B C

搜索

公式

结果

0 =MATCH(A2,{0,0.1,0.9}) 1
0.1 =MATCH(A3,{0,0.1,0.9}) 2
0.2 =MATCH(A4,{0,0.1,0.9}) 2
0.3 =MATCH(A5,{0,0.1,0.9}) 2
0.4 =MATCH(A6,{0,0.1,0.9}) 2
0.5 =MATCH(A7,{0,0.1,0.9}) 2
0.6 =MATCH(A8,{0,0.1,0.9}) 2
0.7 =MATCH(A9,{0,0.1,0.9}) 2
0.8 =MATCH(A10,{0,0.1,0.9}) 2
0.9 =MATCH(A11,{0,0.1,0.9}) 3

通过这个表可以看出,1有10%概率出现,2有80%概率出现,3有10%概率出现。

如果说要满足20%,60%,15%,5%的概率,那么可以构造数组为{0, 0.2, 0.8, 0.95},数组相邻元素的差值则为出现的概率

2、公式rand()

用法:rand()

说明:RAND 返回了一个大于等于 0 且小于 1 的平均分布的随机实数。 每次计算工作表时都会返回一个新的随机实数。

配合match(),=MATCH(RAND(),{0,0.1,0.9})公式的结果1,2,3出现的概率为10%,80%,10%。

rand()产生[0,1)的值,如果生成一个范围值,公式则为rand()*(max-min)+min,如生成一个14-16范围的随机数,公式为=rand()*2+14

3、公式round()

用法:ROUND(number, num_digits)

说明:函数将数字四舍五入到指定的位数。

=round(rand()*2+14,1),则表示对14-16范围的随机数保留一位小数。

4、公式if()

用法:IF(logical_test, value_if_true, [value_if_false])

说明:如果logical_test   为真,则返回value_if_true ,否则返回value_if_false

公式讲解完毕,那么现在一步一步写公式。从里往外写:

=RAND(),表示产生[0,1)随机数。

=MATCH(RAND(),{0,0.1,0.9}),表示产生1,2,3三个数,出现概率为10%,80%,10%

=IF(MATCH(RAND(),{0,0.1,0.9})=2,"22","11"),表示如果MATCH(RAND(),{0,0.1,0.9})等于2,则结果为22,否则为11。这里是有80%结果为22,20%为11。下面来把20%概率平分。

=IF(MATCH(RAND(),{0,0.1,0.9})=2,"22",IF(RAND()>0.5,"11","33")),这样,11,22,33三种结果的概率为10%,80%,10%

回到主题,产生14-14.5,14.5-15.5,15.5-16范围随机数并保留一位小数的公式分别为round(rand()*0.5+14,1),round(rand()*1+14.5,1),round(rand()*0.5+15.5,1),将其分别替换"11","22","33",则最终公式为:

=IF(MATCH(RAND(),{0,0.1,0.9})=2,round(rand()*1+14.5,1),IF(RAND()>0.5,round(rand()*0.5+14,1),round(rand()*0.5+15.5,1)))

--

bin.xu

2020.04.27 锦采

【Excel】公式生成不同出现概率的随机数相关推荐

  1. poi 不自动计算 设置单元格公式_使用POI读取由excel公式生成单元格数据

    需求:读取这里面的数字3 实现: public String getCellValue(HSSFCell cell) { String value = null; if (cell != null) ...

  2. 随机数公式生成一个负数和正数之间的数_怎么把一个数随机正负

    1.如何生成一个数的二分之一的随机数,范围在正负0.3,如20的二分之 你可以进入如图所示网站,在右边那个框框中输入-30000,30000(不支持小数),然后点击下面的按钮生成一个随机数,将它除以1 ...

  3. 批量生成insert语句的方法(word转excel,excel用公式生成insert)

    拿到的是word文档: 一.将word转为excel文档(我使用中文格式的:作为列分隔符): 先将这部分复制粘贴到excel中: 然后选中这一列 完成分列 如果选择下一步,那就默认或者文本方式都可以, ...

  4. 十四、在Excel中生成随机数

    在Excel中生成随机数 一.生成一定范围的随机数 =RANDBETWEEN(10,30)/10:可以生成小数

  5. 用ChatGPT生成Excel公式,太方便了

    ChatGPT 自去年 11 月 30 日 OpenAI 重磅推出以来,这款 AI 聊天机器人迅速成为 AI 界的「当红炸子鸡」.一经发布,不少网友更是痴迷到通宵熬夜和它对话聊天,就为了探究 Chat ...

  6. 用ChatGPT生成Excel公式,太方便了!

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java ...

  7. Excel 自动生成序号公式

    excel 自动生成序号的问题 excel 自动生成序号的问题(有些行是多行合并的)  方法是:在a1中填1  从上往下选中下面需填充的单元格,输入公式  =MAX(INDIRECT("A$ ...

  8. python 生成指定概率的随机数

    生成指定概率的随机数 需求 解决方法 需求 遇到一些情况需要指定概率的条件下生成随机数,比如要生成姓名字符串,随机生成的话一般是两个字的姓名和3个字的姓名概率是一样的,而实际应该是大部分偏向三个字的, ...

  9. Excel排名---万能排名公式生成工具,支持 运算后排名,中国式排名,多条件排名

    Excel运算后排名,中国式排名,多条件排名公式如何写 Excel多条件排名往往困扰很多人,Rank往往解决不了多条件排名或中国式排名(重复的不多占名次)的问题.Rank的用法如下: =RANK(F2 ...

最新文章

  1. mpvue还在维护吗_mpvue 问题汇总(持续更新)
  2. 【跃迁之路】【738天】程序员高效学习方法论探索系列(实验阶段495-2019.2.28)...
  3. C++——《算法分析与设计》实验报告——单源最短路径问题
  4. django项目日志
  5. 解决问题 com.alibaba.fastjson.JSONObject cannot be cast to xxx
  6. Android笔记 消息机制handler+http之 网络图片浏览器demo
  7. 简单介绍一下vue2.0
  8. 增加游戏受众:在英特尔核显上运行MR游戏
  9. delphi 的GetTickCount计时用法缺陷及管制
  10. Scintilla的高级技法
  11. netapp存储 api接口
  12. 使用Python找丑数
  13. HTKbook翻译之第十二章网络、词典及语言模型
  14. oracle嵌套case when,case when 中是否可以在嵌套一个case when ?
  15. 矢量数据向栅格数据的转换算法
  16. 使用Python下载酷狗音乐
  17. 2018年总结, 2019年规划
  18. JSON.parse 转换字符串样式的数组
  19. 【洛谷P3818】小A和uim之大逃离 II
  20. 第二次:收集2000年到2017的网游(包含71款各个年代的热门游戏)

热门文章

  1. PS教程---如何绘制噪点插画
  2. java练手项目 --- 校园兼职平台
  3. 企业为何要挖掘专利和专利布局,如何做?
  4. 矩阵树定理(Kirchhoff || Laplace)初探——Part 1(无向图计数)
  5. 1_XMR全节点搭建
  6. python如何将多张图片批量插入PPT中?
  7. php点赞 收藏 评论代码,基于云开发的小程序评论、点赞、收藏功能实现总结 | 码农网...
  8. oracle 创建范围分区表,Oracle创建表分区----范围分区
  9. 疯狂英语学习者的经典名句
  10. virsh命令行管理工具