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