在不借助VBA的情况下,Excel能否用一个公式随机生成一个加法等式?我在输入「=RANDBETWEEN(1,50)"+"RANDBETWEEN(1,50)"="RANDBETWEEN(1,50)+RANDBETWEEN(1,50)」之后,得出的等式是错误的,如「45+14=24」,如何确保等式的正确?如何让公式中的第一个和第三个RANDBETWEEN(1,50)相等,第二个和第四个RANDBETWEEN(1,50)也相等?


细入思考一下就知道,第一个第二个数可以随意,从第三个开始,就不能随意了,必须根据前二个数的情况来决定生成什么数。

第三个数非常关键,他必须得全盘思考,它就象足球中的后腰一样,既能将前锋低级错误给已方带来的被动局面化于无形,更不能犯低级错误,不能漏球,给后卫造成太大压力,因为后卫能力有限,不能让他们处理超出他们能力的危险。

以极值法来思考:

第一个第二个都是1怎么办?那第三个数肯定不能超过前二者的和,并且还要给第四个数留1个。

第一个第二个都是50怎么办?那第三个数必须得向上压啊,不能漏太多球给后卫,否则,你生成一个小于50的数,第4个能力有限,它顶多只能生成50,那等式就没法平衡了。

所以从第三个数开始,它就不能随意生成了,必须在一定的范围内。那这个范围是什么呢?

要点1:
肯定要小于前面二个数之和减1,并且还不能大于50。

要点2:
要大于前面两数之和减50,并且要大于1。

因而我们将其用公式表示

第一个数、第二个数公式

=randbetween(1,50)

第三个数:

=RANDBETWEEN(MAX(1,B2+D2-50),MIN(50,B2+D2-1))

第四个数:

=B2+D2-F2

可能会有朋友不理解,为什么要大于「左1+左2-50」,我画了个图,帮助大家理解,如果还不能理解,只能帮你到这里了。

最后是广告时间,欢迎关注我的微信公众号「Excel偷懒的技术」,一起偷懒,共同进步,

用Excel提高工作效率,

偷懒有术!

工作有闲!!

人生有味!!!


你这个问题就有点扯了。你要求第一个是随机数,第二个是随机数,第三个、第四个也是随机数。你让随机数加起来要相等。这不开玩笑嘛。请好好理解一下统计学里面的随机数的概念。

你这个实际上更像是一个方案求解的:

求解目标:A+B=C+D

约束条件:

1≦A≦50

1≦B≦50

1≦C≦50

1≦D≦50


用复制列可以解决,但是直接解决不了。随机数每个都可能不同,所以在公式中不存在两个完全一样的随机数。所以不能假设两个随机数相同。


除了生成公式这一列,你还需要额外的三列:add1, add2, sum。为了免得写A1:C1这样的坐标,我假定你把表格转换成数据表了

add1这一列的公式是"=randbetween(1,50)", add2这一列的公式也是"=randbetween(1,50)"

sum这一列的公式是"=sum[[@[add1]:[add2]]

到了生成加法等式这一列,公式是:

=CONCATENATE([@add1],"+",[@add2],"=",[@sum])

说到底,你需要有两个变数帮你储存加号左右两边的数字


我觉得,等号以前的可以生成,生成以后,就不能再继续启动随机函数了,就得对生成的结果,进行计算,这个和就应该是个和前面随机结果是对应的一个值,而不能再用随机数。

可以把EXCEL的迭代次数设置为1,然后停止自动计算,用手动计算来试试。


也不是不可以啊!

第一个数用RANDBTWEEN产生,放在A1单元格,第三个数用RANDBTWEEN产生,放在C1单元格,第二个数在B1单元格=50-A1,第四个数在D1单元格=50-C1,因为第一个数,第三个数都是随机产生的,所以第二个数和第四个数也是随机产生的了。

如果你不想让他们的和等于50,那就再用一个随机数作为他们的和,然后把公式里面的50换成这个数字就行了。

是不是很无聊?


不要放在一个格子里啊。前面随机,后一个结果用公式计算就行了。


推荐阅读:
相关文章