在不藉助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換成這個數字就行了。

是不是很無聊?


不要放在一個格子里啊。前面隨機,後一個結果用公式計算就行了。


推薦閱讀:
相关文章