【动态数组】行业案例:辽宁福利彩票35选7
![清华学弟任泽岩](https://wps-home.wpscdn.cn/images/2024/06/11/62dbad5e5c265e8796a81e86dfd1bea2.png@base@tag=imgScale&w=38&h=38&m=1&c=1&q=75)
创作者俱乐部成员
困难如山,我有金山。
欢迎收看本期【动态数组】专题,我是学弟。
【动态数组】专题,均使用动态数组的相关函数,进行一定范围内行业应用。
本期学弟带大家模拟做一份辽宁福利彩票的行业案例。
社区ID:清华学弟任泽岩
WPS办公软件商业讲师
- 金山办公最有价值专家(KVP)、金山办公认证讲师(KCT)、金山WPS社区优秀创作者、金山文档行业金鹰社社员、表格菁培班毕业生;
- 微博认证职场博主、微信视频号年度潜力主播、百度百科【任泽岩】词条收录;
- 中国南方航空公司十佳教员、金牌微课制作师,全国培联/培协推优大赛金奖获得者,《培训》杂志“师道匠心”全国金牌内训师称号获得者,两度获得Toastmasters国际演讲会International Speech Contest赛事冠军;
- 中国管理科学学会高级企业培训师,入选全国优秀技能型人才库。
⏰ | 共创作者:@新路 特别感谢新路老师在动态数组函数使用过程中对学弟的大力帮助,在此深表感谢! |
辽宁福利彩票35选7,的玩法是,从1-35个数字中,选择7个数字。根据开奖结果(7红球+1蓝球)的不同,匹配不同的奖项。其他地市彩票的玩法大同小异,大家可以自行调整规则。
图片来源:辽宁福利彩票官网
想做一份模拟彩票系统,就有至少要实现3+1个功能:
功能1:可以手工或者随机选号,手工选号没什么难度,本例选择用函数进行随机选号;
功能2:开奖结果,需要手工录入;
功能3:中奖结果查询。
选装功能:参数表,中奖奖级的对应表,用于查找引用。
功能2没有难度,手工录入即可,可以随时修改:
选装功能也没有难度,作为参数表备用:
功能1,随机选号效果,使用动态数组公式:
=TAKE(SORTBY(RANDARRAY(1,35,1,35,TRUE),SEQUENCE(1,35,1,1),1),1,7)
其中,
RANDARRAY(1,35,1,35,TRUE)可以生成一个1行35列的随机数组;
SEQUENCE(1,35,1,1)可以生成一个1行35列的1-35数字序列;
SORTBY(①,②)可以按照一定顺序重新进行排布,避免了选数的重复;
TAKE(③,1,7)可以将这个列数组从前面取7列,形成一注随机35选7的彩票。
功能3,中奖结果查询,我们分开来看:
中了几个红球,使用公式:
="中"&MMULT(SIGN(IFERROR(FIND(","&$C$10:$I$10&",",","&TEXTJOIN(",",,C3:I3)&","),0)),ROW($A$1:$A$7)^0)
也是本例中最复杂也最精彩的动态数组公式,再次感谢@新路老师的指点帮助。
其中,
FIND(","&$C$10:$I$10&",",","&TEXTJOIN(",",,C3:I3)&",")是用自选的号码,在中奖的号码中进行查找,返回查找的1行7列数组。需要特别注意的是,这个函数的前后都拼接了一个","(也可以替换为同一个其他字符),如果中奖号码是11、12、13、14……,那么单纯查找“1”也是能找到的。因此我们在",11,12,13,14,"中去查找"1",就找不到结果啦!一定记得,源字符串的收尾也要拼一个分隔符,单纯用TEXTJOIN以后,两端是没有分隔符的;
当无法查找的具体数值时(未中这个号码),将返回错误值,这时我们用IFERROR(①,0)来进行屏蔽;
SIGN(②)是将结果返回1(中了这个号码)或者0(未中这个号码);
ROW($A$1:$A$7)^0是生成一个7行1列,值均为1的数组;
MMULT(③,④)是用1行7列数组去乘7行1列数组,结果为1行1列数组(即一个值),每一个未中奖的号码将折算成0,每一个中奖的号码将折算成1,结果即为中奖的红球的个数;
"中"&⑤是用来匹配参数表的书写形式:
是否中蓝球,使用公式:
=IFERROR("+"&SIGN(FIND(","&$C$11&",",","&TEXTJOIN(",",,C3:I3)&",")),"")
其中,
","&TEXTJOIN(",",,C3:I3)&","用来把所有选择的数字用","连接起来,作为FIND里“待查找的字符串”,前后各拼接一个字符串的意义同前;
FIND(","&$C$11&",",①)用来查找这个字符串中是否包含蓝球号码,结果可以返回任意一个正数(包含蓝球)或者错误值(不包含蓝球,即无法找到),前后各拼接一个字符串的意义同前;
SIGN(②)可以生成1(包含)或者错误值(不包含);
"+"&③是为了匹配参数表的书写形式:
IFERROR(④,"")错误值时,返回空值。
最后使用=J3&K3,就可以实现中奖结果的表达了,没有难度。
然后是中奖情况的判断:
使用我们非常熟悉的XLOOKUP(因为参数表中奖结果在奖级的右侧,逆向查找,用XLOOKUP比VLOOKUP更为方便)
=XLOOKUP(L3:L7,P3:P10,O3:O10,"未中奖",0)
上面是动态数组的写法,也可以只写=XLOOKUP(L3,$P$3:$P$10,$O$3:$O$10,"未中奖",0),再进行下拉拖拽,注意需要使用$绝对引用。
最后,我们手工验证看一下计算结果:
结果都是正确的!
****(我是可爱的分割线)****
其实学弟蛮好奇,随机打5注的中奖概率有多高。
咱们用F9刷新下看看中奖概率,录一个动图:
除了偶尔的七等奖,从数学期望来看,中奖概率着实不高啊!
还是凭借实力研究号码走势吧,机打5注划个问号,哈哈!
最后是文档分享链接:
【金山文档】辽宁福利彩票35选7
https://kdocs.cn/l/cuHZAN79Njk4
如果你觉得今天的教程对你有帮助,欢迎在下方为我点一颗小红心💖💖💖哦!
>>> 欢迎收看清华学弟任泽岩WPS社区【个人帖子合集】 <<<
创作者俱乐部成员
创作者俱乐部成员
WPS函数专家
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员