Excel 寫六合彩!

2009-12-10 7:03 am
想用excel寫六合彩機:
A1=INT(RAND()*49+1)
B1=INT(RAND()*49+1)
C1=INT(RAND()*49+1)
D1=INT(RAND()*49+1)
E1=INT(RAND()*49+1)
F1=INT(RAND()*49+1)
但六個隨機數出後會有相同,可唔可以唔同;可唔可以由小到大自動排列?
即當按下F9時出現: 34 ,27,8,34 ,42,5
變5,8,27,34,42,49

回答 (3)

2009-12-12 3:04 pm
✔ 最佳答案
美香老師是rc的老師,先給美香老師問個安。

2009-12-12 07:04:02 補充:
隨機數
A1
=INT(RAND()*49+1)

A2
=LARGE(IF(COUNTIF(A$1:A1,ROW($1:$49)),0,ROW($1:$49)),INT(RAND()*(50-ROW())+1))
Ctrl-Shift-Enter 三鍵連按 (陣列公式的輸入方法)
向下拉


排序
B1
=SMALL(A:A,ROW())
向下拉

2009-12-12 20:37:39 補充:
我無法估計版大失敗的原因,請你下載檔案:

http://w2.hkmalls.com/rc/_tp/156m/mark6.xls
2009-12-11 11:16 pm
供參考:
A1=INT(RAND()*10^12+1)*100+ROW()
下拉至 A49
不排序:
C1=--RIGHT(LARGE($A$1:$A$49,COLUMN(A1)),2)
右拉至H1
直接排序:
C5=SMALL(IF($A$1:$A$49>LARGE($A$1:$A$49,7),--RIGHT($A$1:$A$49,2)),COLUMN(A1))
陣列公式, 右拉至H5

2009-12-11 15:21:25 補充:
rc老師的陣列公式方法, 效果更佳, 但公式思路更深層, 希望明仔能扒到

2009-12-11 23:41:03 補充:
C5是陣列公式,如不會操作陣列公式, 便在C2輸入:
=small($C1:$H1,column(a1))
將C2右拉至H2

2009-12-12 13:59:17 補充:
12次方, 目的是弄一些大值的49個隨機整數, 不要重複, 如10^12取49個重複整數而有相同值, 機會極低。
C5的陣列公式, 是直接引有A1:A49, 出6個不重複且排序的數字, 一步到位, 一行完成
如用C1的公式祇能做到不重複, 須要多一行再排序, 兩步才到位
祇是提供兩種辦法

2009-12-12 14:53:28 補充:
12次方, 8次方, 2次方, 就算有重複, 公式都不會出錯, 祇是大號碼即49, 48, ..比細號碼1,2...較容易抽中, 但這是超過10億分之一的機率
因excel最多顯示15個位的數字, 故不可用10^30

2009-12-12 15:18:39 補充:
right函數的傳值是文字格式, 如內容是數字, 亦祇能叫文字串數字(文本數字), 並非真正數字, 很多函數都無法計算。舉例:
A1 = 1234, B1=RIGHT(A1,2)→出 34
A2 = 5678, B2=RIGHT(A2,2)→出 78
C1 =SUM(B1:B2) 應出 112, 但結果是出0
原因是 34 和 78 祇是文本數字, 並非真正數字

2009-12-12 15:28:03 補充:
Excel的常規, 可用value函數或運算符, 將文本數字激活為數字
如公式傳值是文本數字, 而又須要作續用計算, 公式便要加激活, B1公式須改為以下其中一項均可:
=--RIGHT(A1,2)
=VALUE(RIGHT(A1,2))
=1*RIGHT(A1,2)
=RIGHT(A1,2)-0
=RIGHT(A1,2)+0
=RIGHT(A1,2)/1
但 =+RIGHT(A1,2)是無效, 不能激活

2009-12-12 15:38:29 補充:
用兩個減號, 負負得正, 即與原值不變, 同樣道理, 1*; -0, +0, /1都是與原值不變
如用一個減號, 變會將原值變成負數, 與*-1相同
Excel本身是有很多Excel本身的常規及智慧, 有時是須要嘗試, 在失敗的過程中吸收經驗的

2009-12-12 15:49:55 補充:
如不介意佔用太多輔助格及多步完成, 最簡單的做法是:
A1=RAND() 下拉至A49
C1=MATCH(LARGE($A$1:$A$49,COLUMN(A1)),$A:$A,) 右拉
C2=SMALL($C$1:$H$1,COLUMN(A1)) 右拉
如不設A1:A49, 便祇有RC老師在答題區的陣列公式才可以解決

2009-12-12 16:08:49 補充:
Excel 的運算及顯示能力的限制, 公式的方數最大可用12, 如13以上會出錯
公式是出隨機數字, 號碼組合不應有主觀及條件
如想出 1,2,3,4,5,6 按過千萬次F9應會有一次吧!
49取6, 1,2,3,4,5,6機率是 13983816份之一
往馬會買電腦票, 是 1,2,3,4,5,6, 機會雖有, 但極之渺茫

2009-12-12 16:17:04 補充:
"無可能出到1.2.3.4.5.6或44.45.46.47.48.49就失去作用!"
看到以上這句, 我有點暈!
題目是要求電腦隨機選號, 為何要求出指定號碼!

2009-12-12 22:23:38 補充:
此題所有回答及意見的公式, 都是隨機而生, 並非"明知它由1-20,1-30,1-35.20-35,25-39,25-49咁又點期望它會准?"
可能閣下並沒有認真研究機率,
如第一個數大於30, 機率是361份之一
如第6個數是20或以下, 機率515份之一
請問試了多少次, 如試了過千次, 應不難碰到
如要第6個數是10或以下, 機率更低至66590份之一
2009-12-10 3:08 pm
咁OFFSET、INDIRECT、ROUNDDOWN、COUNTIF等指令都唔得?
即是話除左用一些高級程式先可以寫六合彩機,Excel做唔倒?

2009-12-10 21:22:36 補充:
、咁樣同我條題目有什麼分別?
我都一早指出一列抽號碼,一列排號碼!
有唸過用Min、Max,但它得兩組,第二至第四排不了,有唸過用vba,但它好似太復習,只想用一行或一兩個指令完成!現在想緊用Rank,再跟據1-6再排列!
預定每8個數隨機取1個,好似失去六合彩的可能性,即無可能出姊妹號碼、或1,2,3,4,5,6!

2009-12-10 23:37:15 補充:
現在想到用三行,
第一行隨機=INT(RAND()*49+1),
第二行排列=RANK(A1,A1:A6,1),
第三行結果=IF(B1=1,OFFSET(B1,0,0,1,1),IF(B2=1,OFFSET(B2,0,0,1,1),IF(B3=1,OFFSET(B3,0,0,1,1),IF(B4=1,OFFSET(B4,0,0,1,1),IF(B5=1,OFFSET(B5,0,0,1,1),IF(B6=1,OFFSET(B6,0,0,1,1)))))))
但如果第一行無重復隨機就無問題!但如果有重複就變無一、兩個,即無第二位重大,或無第三位最大!

2009-12-10 23:45:52 補充:
有什麼方法可將A2不重複隨機A1,A3不重復隨機A1至A2,A4不重複A1至A3...
唸緊用IF,但寫不成!

2009-12-10 23:57:50 補充:
Rand個數不是0以上,1以下,可以先撇除已出現?
用OFFSET定INDIRECT?

2009-12-11 01:32:08 補充:
A
A1=INT(RAND()*49+1)
A2=INT(RAND()*(49-ROW(A1)))+1
A3=INT(RAND()*(49-ROW(A1:A2)))+1
A4=INT(RAND()*(49-ROW(A1:A3)))+1
A5=INT(RAND()*(49-ROW(A1:A4)))+1
A6=INT(RAND()*(49-ROW(A1:A5)))+1
都做唔到,一樣有重複!

2009-12-11 16:23:58 補充:
比我就想唔倒用10的12次方,但都有想過寫哂全部49號碼,再選,但A1=INT(RAND()*49+1)已經做倒!同條公式好似有錯!C1後面是否有(減)號?有就C1至H1全部是負數,無就做唔倒Small/Large指令,同C5條公式都有錯,全部出#NUM!。同點解我在C5直接用Large指令去C1至H1度做唔倒排列,但如果C1Right前有負號就得?

2009-12-11 22:46:20 補充:
都話個"參考答案"有錯!第2行C1,第3行C5都錯!

2009-12-11 22:56:52 補充:
哦,對不起,原來是"兩個"負號,真不知同好難看!
但第三行真是錯,而且太複雜!簡單C5=SMALL(C1:H1,1)或C5=LARGE(C1:H1,6)去到H5就可以!

2009-12-11 23:51:43 補充:
現在不是什麼公式問題!是:
C5=SMALL(IF($A$1:$A$49>LARGE($A$1:$A$49,7),--RIGHT($A$1:$A$49,2)),COLUMN(A1))
行不了,內裡有錯!
C5=Small(C1:H1,1).........去到...........H5=Small=(C1:H1,6),簡單易明!

2009-12-12 07:47:16 補充:
哦,現在先明白C5是"陣列公式"的意思,是要同時按3個掣!不過都是C5=(C1:H1,1)簡單!雖然唔明點解要用10的12次方做第一行,而且點解RIGHT前要有"兩個"負號,唔用唔得,但都好多謝解答,有好多問題都是無人解答,這條問題有兩位解答,好開心!比我想,只會用OFFSET、IF、COUNTIF、RAND、RANK、SMALL、LARGE,未想過要用到12次方,RIGHT、ROW等指令,更加唔會用3個製做陣列!

2009-12-12 11:40:30 補充:
回rc08,B1排列有問題,唔知你寫錯定我抄錯(我用Copy),全部出1、2、3、4、5、6!做唔倒排列!

2009-12-12 14:24:20 補充:
哦,都無留意到C5是針對A1而寫,我仲以為用到SMALL是針對C1而寫!
12次方,即是話可以用8次方或30次方?但即是話都有機會重複,只不過極少?有無可能做到"絕對"唔會重複?

2009-12-12 14:35:53 補充:
呀!仲有RIGHT已經是轉字串,點解前面要用到兩個負號?唔用又唔得?用一個又唔得?

2009-12-12 15:42:41 補充:
意思即是話有"雙負號"就會變真數字34同78?
同條公式10^12好似都是唔准,得個大概,因為我收改方數後,數值偏大或偏小,就算12次方,第一個數,最大都是兩拾幾,相反,第六個數,最小都有兩拾幾!即無可能出1、2、3、4、5、6或44、45、46、47、48、49!

2009-12-12 16:02:53 補充:
RC在答題區的公或有錯!但我又唔知錯邊,但一定行唔到,我試過!

排序
B1
=SMALL(A:A,ROW())
向下拉

10^12次方出唔到或無可能出到1.2.3.4.5.6或44.45.46.47.48.49就失去作用!

2009-12-12 16:27:04 補充:
我意思話未見第一個數大過三拾,最多兩拾幾!第六個數未見過細過兩拾,最細都有兩拾幾!咁等於唔准,無用,得過大概!
不是要它出123456,但如果舉例,明知它由1-20,1-30,1-35.20-35,25-39,25-49咁又點期望它會准?

2009-12-13 01:57:31 補充:
如果要用到機率去解釋,咁當然"明",要第1個數大於30,即是話第2個數也一樣要大於30,第3個、第4個、第5個、第6個亦一樣要,相反第6個數要小於20,第5個至第1個一樣要小於20先可做到!但得出來個結果真是有點"異常",或者我真是要按上過千萬次先會有一次!因為第1個數不是幾點,就是拾幾點,最大都是兩拾幾;相樣第六個數細極都有兩拾幾!
別,有無試過馬會網址上的隨機抽樣,情形原全唔同!


收錄日期: 2021-04-13 19:08:44
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20091209000051KK01799

檢視 Wayback Machine 備份