今天,我们就来给大家做一个自动生成规定范围内数字的四则运算的Excel自动生成方法。效果如下:
同时可以通过设置一些参数控制数字的范围以及运算符的范围:
也可以直接生成带有答案的试题,如下图:
下面,我就带领大家一起来实现以上的效果吧。按照我们的习惯,还是先来给大家介绍一下使用到的几个函数。
一、RAND函数
语法:=RAND()
说明:该函数不需要任何的参数,返回的是大于等于0,小于1的随机数。
二、RANDBETWEEN
语法:= RANDBETWEEN(bottom,top)
参数解释:bottom返回的最小的随机数;
Top返回的最大的随机数。
结果:返回位于bottom和top之间的一个随机整数。
三、choose函数
语法:Choose(index_num, value1, [value2], …)
返回结果:对应的value的值。
参数解释:Index_num 必要参数,数值表达式或字段,它的运算结果是一个数值,为 1 至254之间的数字。 或者为公式或对包含 1 到 254 之间某个数字的单元格的引用。
Value1:index_num为1时候的返回的结果。依此类推。
四、FIND函数
语法:FIND(find_text,within_text,start_num)
返回结果:返回的结果为查找的字符串出现的位置。
参数解释:Find_text 是要查找的字符串。
Within_text 是包含要查找关键字的单元格或者字符串。就是说要在这个单元格(字符串)内查找关键字
Start_num 指定开始进行查找的字符数。比如Start_num为1,则从单元格(字符串)内第一个字符开始查找关键字。如果忽略 start_num,则假设其为 1。
五、SQRT函数
语法:SQRT(number)
返回结果:返回正平方根。
参数解释:number为要计算平方根的数。
六、INT函数
语法: INT(number)
返回结果:将number向下取整到最接近的整数。
参数解释:需要进行取整的实数。
七、案例的实现
要实现开头演示的效果,我们需要做一些辅助的单元格。如下所示:
1.在【符号】栏生成运算符号,公式如下:
=CHOOSE(RANDBETWEEN($X$5,$Y$5),”+”,”-“,”×”,”÷”)
公式解释:使用RANDBETWEEN生成指定返回的随机数,我们在X5和Y5中分别制定下限和上限,就可以控制生成的符号的范围。比如X5中为1,Y5中为2,则生成的随机数就只能为1或者2,此时通过choose函数就只能选择出”+”或者”-”。要生成其他的符号范围,以此类推。
2.在【第二项】栏生成计算式的第二项,公式如下:
=IF(FIND(C3,”+-×÷”)>2,INT(SQRT(RAND()*$X$4))+1,RANDBETWEEN(1,$X$4-1))
公式解释:如果是加法或者减法,此时第二项可以直接生成1到范围最大值-1的数字即可。但是当为乘法或者除法时,为了要控制结果在指定的范围内,此时最大值只能是范围的最大值开平方根。所以我们就控制第二个数字为RAND()*$X$4的开平方根后进行取整,因为rand函数的结果会出现0,因为在除法中0做除数是没有意义的,所以我们让最后的结果加1。
3.在【第一项】栏生成计算式的第一项,公式如下:
=CHOOSE(FIND(C3,”+-×÷”),RANDBETWEEN(1,$X$4-D3),RANDBETWEEN(D3,$X$4),RANDBETWEEN(0,INT($X$4/D3)),RANDBETWEEN(1,INT($X$4/D3))*D3)
公式解释:先使用find函数查询出符号栏是哪种运算,然后依次根据不同的运算符号来生成第一项的值。如果是加法,则第一项的值需要控制在1到(最大值-第二项)的范围内;如果是减法,则第一项需要控制在第二项到最大值的范围内(我们只考虑计算结果为正数的情形);如果为乘法,第一项控制的最大范围是总范围/第二项的结果取整;如果为除法,我们要控制计算结果为整数,此时计算结果范围是1到(控制的最大范围/第二项),那么第一项的值就等于结果*第二项。
4.在【辅助1】中生成计算式子,公式如下:
=”=”&B3&C3&D3
5.在【结果】中生成式子的计算结果。
我们要让辅助1中的式子计算出结果,可以有多种方式(请参考文章Excel中计算单元格中文本算式的值),此处使用宏表函数EVALUATE进行计算。EVALUATE函数不能直接使用,需要通过定义名称的方式使用。如下:
然后在结果栏中输入:
=计算式
6、在【算式】中生成最终的结果,公式为:
=IF($X$6=”ssyy”,B3&C3&D3&”=”&F3,B3&C3&D3&”=”)
题号的格式我们通过自定义单元格格式来实现,代码为【(G/通用格式)】。
最终结果如下所示:
经过以上的步骤就可以得到最终的算式,最后我们可以把1-5的辅助计算全部隐藏,然后复制成三列,就可以得到我们最后需要的结果啦。
本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com