Excel能否用純單元格公式隨機生成一個簡單的加法等式?
在不藉助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換成這個數字就行了。
是不是很無聊?
不要放在一個格子里啊。前面隨機,後一個結果用公式計算就行了。
推薦閱讀: