其實很簡單的,就是一個小技巧而已。
4個數字用randbetween函式取10-16的隨機,第5個數用72減去前4個數的和就行了。
有知友提出了極端的情況,如果要確保所有隨機的資料都符合要求,且不使用字典,就需要增加很多的判斷,按我的能力上vba可能方便點。
如果非要用函式解決,我只能想到一個辦法,那就是做個包含所有組合的字典(一共有7個數,如果只取整數,利用ms query獲得排列組合,可以得到所有組合數量一共是16787個可能,剔除掉不符合要求的資料,剩下的有470個),然後使用randbetween函式隨機在字典裡提取組合就行了。
模擬資料
開啟ms query
設定相關引數
選中excel文件
新增資料表
輸入查詢命令:select * from [Sheet1$a1:a8],[Sheet1$b1:b8],[Sheet1$c1:c8],[Sheet1$d1:d8],[Sheet1$e1:e8]
單擊確定
就會生成所有組合了
接下來就是將結果輸出到Excel
在Excel中對所有組合進行篩選後,可以直接使用公式進行隨機抽取了。
公式(我是把資料放在了M-S列中)
最終效果
其實很簡單的,就是一個小技巧而已。
4個數字用randbetween函式取10-16的隨機,第5個數用72減去前4個數的和就行了。
如果前四個數都是十,最後一個數就是三十二了,超出了範圍。有知友提出了極端的情況,如果要確保所有隨機的資料都符合要求,且不使用字典,就需要增加很多的判斷,按我的能力上vba可能方便點。
如果非要用函式解決,我只能想到一個辦法,那就是做個包含所有組合的字典(一共有7個數,如果只取整數,利用ms query獲得排列組合,可以得到所有組合數量一共是16787個可能,剔除掉不符合要求的資料,剩下的有470個),然後使用randbetween函式隨機在字典裡提取組合就行了。
模擬資料
開啟ms query
設定相關引數
選中excel文件
新增資料表
輸入查詢命令:select * from [Sheet1$a1:a8],[Sheet1$b1:b8],[Sheet1$c1:c8],[Sheet1$d1:d8],[Sheet1$e1:e8]
單擊確定
就會生成所有組合了
接下來就是將結果輸出到Excel
在Excel中對所有組合進行篩選後,可以直接使用公式進行隨機抽取了。
公式(我是把資料放在了M-S列中)
最終效果