- 註冊時間
- 2022-12-5
- 最後登錄
- 2024-11-2
- 主題
- 查看
- 積分
- 52
- 閱讀權限
- 30
- 文章
- 113
- 相冊
- 1
- 日誌
- 7
狀態︰
離線
|
第二講 用Excel來計算彩券規律可以不?可以,但不提倡!
彩券這個物種,讓很多人是又愛又恨,又充滿希望又每天都失望。
不過我目前並沒有加入到這個行業中來,哪怕是前段時間樓下每天路過的小店開出了1000多萬,我也沒有動搖。
當然,這完全是個人喜好,無關對錯。適度的情況下,我認為是合理的。
彩券這個行業問題就不展開了,今天主要來解答一下這個行業的Excel需求。
問題是一位學生提出來的,很簡單,有0~9十個數字,可能會有很多組,需要分別判斷出大小、奇偶、質合、陰陽。
判斷規則如下:
[小/大]:小(0,1,2,3,4)、大(5,6,7,8,9)
[奇/偶]:奇(1,3,5,7,9)、偶(0,2,4,6,8)
[質/合]:質(1,2,3,5,7)、合(0,4,6,8,9)
[陰/陽]:陰(0,3,4,6,7)、陽(1,2,5,8,9)
資料類比:
先給公式解法:
F2=CONCAT(CHOOSE(MATCH(FIND(B2:D2,"0123456789"&B2:D2),{1,6,11}),"小","大"))
公式很長,跟我一起用公式求值來一步一步看看它是怎麼工作的吧:
看懂了嗎?還是逐一給大家解釋一下吧。
1)
"0123456789"&B2:D2
={"01234567894","01234567898","01234567897"}
將0~9按從小到大排列,並用&連接B2:D2儲存格,實際上這裡B2:D2儲存格的內容在後面並不會參與實質的運算,只是通過這個方式,創建出1個包含3個0~9序列的陣列。
2)
FIND(B2:D2,"0123456789"&B2:D2)
=FIND({4,8,7},{"01234567894","01234567898","01234567897"})
={5,9,8}
通過FIND函數,分別查找B2:D2儲存格數值在剛剛創建出的陣列序列中第一次數據的位置。即數值4在"01234567894"中第1次出現的位置是5,8在"01234567898"中第1次出現的位置是9,7在"01234567897"中第1次出現的位置是8。得到陣列{5,9,8}。
3)
MATCH(FIND(B2:D2,"0123456789"&B2:D2),{1,6,11})
=MATCH({5,9,8},{1,6,11})
={1,2,2}
分別匹配5、9、8在陣列{1,6,11}中的相對位置,為什麼說是相對位置呢,因為MATCH支持模糊匹配,在找不到精確對應的值時,會返回與之接近的最大值的位置,注意,這裡的與之接近是指不超過查找值本身。
通俗點講,就是如果找不到5,那就返回不大於5的下一個值,即1.
4)
CHOOSE(MATCH(FIND(B2:D2,"0123456789"&B2:D2),{1,6,11}),"小","大")
=CHOOSE({1,2,2},"小","大")
={"小","大","大"}
CHOOSE函數可以根據給定的索引值(參數1:{1,2,2}),從參數串(參數2、3…:"小","大")中選出相應的值。
這裡我們要判斷的是大小,之前我們已經將0~9按從小到大排列成0123456789,0~4分別在序列中的位置是1~5,對應小,5~9的位置是6~10,對應大。
在FIND函數中,我們得到了需要判斷的數值在序列中的位置;
在MATCH函數中,我們取了6作為中間值,即小於6返回1,反之返回2;
在CHOOSE函數中,我們讓1返回"小",2返回"大";
接下來,就是CONCAT登場,將陣列整合了。
5)
CONCAT(CHOOSE(MATCH(FIND(B2:D2,"0123456789"&B2:D2),{1,6,11}),"小","大"))
=CONCAT({"小","大","大"})
="小大大"
公式求值是一個非常好用的功能,理解公式或者檢查公式都非常的好用,公式再長都不怕了。
跑題了,說回來,還有奇偶、質合、陰陽。
邏輯是一樣的,根據不同的需求調整前面0~9的排列順序即可。
G2
=CONCAT(CHOOSE(MATCH(FIND(B2:D2,"1357902468"&B2:D2),{1,6,11}),"奇","偶"))
H2
=CONCAT(CHOOSE(MATCH(FIND(B2:D2,"1235704689"&B2:D2),{1,6,11}),"質","合"))
I2
=CONCAT(CHOOSE(MATCH(FIND(B2:D2,"0346712589"&B2:D2),{1,6,11}),"陰","陽"))
這個公式解法也有缺點,那就是對Excel版本的要求比較高,老版本的是沒有CONCAT這個函數的。
而如果要用其它公式來代替,就會更麻煩了。還不如直接用VBA。
看,大小奇偶質合陰陽,一個公式直接搞定了。VBA真香!
(備註:有圖表,可是就是無法插入到SOGO群組中,請教教唄!) |
|