今天,我們就來給大家做一個自動生成規(guī)定范圍內(nèi)數(shù)字的四則運算的Excel自動生成方法。效果如下:
同時可以通過設(shè)置一些參數(shù)控制數(shù)字的范圍以及運算符的范圍:
也可以直接生成帶有答案的試題,如下圖:
下面,我就帶領(lǐng)大家一起來實現(xiàn)以上的效果吧。按照我們的習慣,還是先來給大家介紹一下使用到的幾個函數(shù)。
一、RAND函數(shù)
語法:=RAND()
說明:該函數(shù)不需要任何的參數(shù),返回的是大于等于0,小于1的隨機數(shù)。
二、RANDBETWEEN
語法:= RANDBETWEEN(bottom,top)
參數(shù)解釋:bottom返回的最小的隨機數(shù);
Top返回的最大的隨機數(shù)。
結(jié)果:返回位于bottom和top之間的一個隨機整數(shù)。
三、choose函數(shù)
語法:Choose(index_num, value1, [value2], ...)
返回結(jié)果:對應(yīng)的value的值。
參數(shù)解釋:Index_num 必要參數(shù),數(shù)值表達式或字段,它的運算結(jié)果是一個數(shù)值,為 1 至254之間的數(shù)字。 或者為公式或?qū)Π?1 到 254 之間某個數(shù)字的單元格的引用。
Value1:index_num為1時候的返回的結(jié)果。依此類推。
四、FIND函數(shù)
語法:FIND(find_text,within_text,start_num)
返回結(jié)果:返回的結(jié)果為查找的字符串出現(xiàn)的位置。
參數(shù)解釋:Find_text 是要查找的字符串。
Within_text 是包含要查找關(guān)鍵字的單元格或者字符串。就是說要在這個單元格(字符串)內(nèi)查找關(guān)鍵字
Start_num 指定開始進行查找的字符數(shù)。比如Start_num為1,則從單元格(字符串)內(nèi)第一個字符開始查找關(guān)鍵字。如果忽略 start_num,則假設(shè)其為 1。
五、SQRT函數(shù)
語法:SQRT(number)
返回結(jié)果:返回正平方根。
參數(shù)解釋:number為要計算平方根的數(shù)。
六、INT函數(shù)
語法: INT(number)
返回結(jié)果:將number向下取整到最接近的整數(shù)。
參數(shù)解釋:需要進行取整的實數(shù)。
七、案例的實現(xiàn)
要實現(xiàn)開頭演示的效果,我們需要做一些輔助的單元格。如下所示:
1.在【符號】欄生成運算符號,公式如下:
=CHOOSE(RANDBETWEEN($X$5,$Y$5),'+','-','×','÷')
公式解釋:使用RANDBETWEEN生成指定返回的隨機數(shù),我們在X5和Y5中分別制定下限和上限,就可以控制生成的符號的范圍。比如X5中為1,Y5中為2,則生成的隨機數(shù)就只能為1或者2,此時通過choose函數(shù)就只能選擇出'+'或者'-'。要生成其他的符號范圍,以此類推。
2.在【第二項】欄生成計算式的第二項,公式如下:
=IF(FIND(C3,'+-×÷')>2,INT(SQRT(RAND()*$X$4))+1,RANDBETWEEN(1,$X$4-1))
公式解釋:如果是加法或者減法,此時第二項可以直接生成1到范圍最大值-1的數(shù)字即可。但是當為乘法或者除法時,為了要控制結(jié)果在指定的范圍內(nèi),此時最大值只能是范圍的最大值開平方根。所以我們就控制第二個數(shù)字為RAND()*$X$4的開平方根后進行取整,因為rand函數(shù)的結(jié)果會出現(xiàn)0,因為在除法中0做除數(shù)是沒有意義的,所以我們讓最后的結(jié)果加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函數(shù)查詢出符號欄是哪種運算,然后依次根據(jù)不同的運算符號來生成第一項的值。如果是加法,則第一項的值需要控制在1到(最大值-第二項)的范圍內(nèi);如果是減法,則第一項需要控制在第二項到最大值的范圍內(nèi)(我們只考慮計算結(jié)果為正數(shù)的情形);如果為乘法,第一項控制的最大范圍是總范圍/第二項的結(jié)果取整;如果為除法,我們要控制計算結(jié)果為整數(shù),此時計算結(jié)果范圍是1到(控制的最大范圍/第二項),那么第一項的值就等于結(jié)果*第二項。
4.在【輔助1】中生成計算式子,公式如下:
='='&B3&C3&D3
5.在【結(jié)果】中生成式子的計算結(jié)果。
我們要讓輔助1中的式子計算出結(jié)果,可以有多種方式(請參考文章Excel中計算單元格中文本算式的值),此處使用宏表函數(shù)EVALUATE進行計算。EVALUATE函數(shù)不能直接使用,需要通過定義名稱的方式使用。如下:
然后在結(jié)果欄中輸入:
=計算式
6、在【算式】中生成最終的結(jié)果,公式為:
=IF($X$6='ssyy',B3&C3&D3&'='&F3,B3&C3&D3&'=')
題號的格式我們通過自定義單元格格式來實現(xiàn),代碼為【(G/通用格式)】。
最終結(jié)果如下所示:
經(jīng)過以上的步驟就可以得到最終的算式,最后我們可以把1-5的輔助計算全部隱藏,然后復(fù)制成三列,就可以得到我們最后需要的結(jié)果啦。