随机的要求还是要用随机函数的,不过需要做一些处理:
用随机函数生成随机值;
用条件函数判断随机值;(比如我们规定当随机值等于1时执行加,否则执行减)
示例:C1 =IF(RANDBETWEEN(0,2)=1,A1+B1,A1-B1)
你的想法可能是:B1=B1+A1或者B1=B1-A1 ,但在Excel里默认是不推荐这样做的,单元格不能引用自身(开启设置后可以这样写,但循环引用会影响计算结果以及消耗硬件资源),因此你只能在别的单元格来做这件事,示例中就是用C1来存放的。
1. 在上面1、2步的基础上,加入随机引用,用INDIRECT()生成随机单元格。
示例:
C1 =IF(RANDBETWEEN(0,2)=1,A1+INDIRECT("B"&RANDBETWEEN(1,1000),TRUE),A1-BINDIRECT("B"&RANDBETWEEN(1,1000),TRUE))
但并不完美:单元格A1样式引用由字母+数字组成,随机函数只能生成数字,字母则无能为力。我们需要改一下,使用R1C1样式:
C1 =IF(RANDBETWEEN(0,2)=1,A1+INDIRECT("R"&RANDBETWEEN(1,1000)&"C"&RANDBETWEEN(1,1000),false),A1-BINDIRECT("R"&RANDBETWEEN(1,1000)&"C"&RANDBETWEEN(1,1000),false))
单元格个数千千万,真要这么干的话,记得尽可能缩小引用区域!毕竟加、减0也没啥意义。
需要留意的点:
表格支持的最大列和最大行是有上限的,随机函数中的最大值不能超过最大行号和最大列号。
还有就是概率问题。
再问一下,我打算把一个数值随机加减这个数的随机百分比,就用得到小数点以下的范围,那些公式可以把一个数值随机加减这个数的随机百分比范围,行得通吗?