ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 44546|回复: 35

[求助] 如何实现双色球历史数据对比的统计

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-4-6 10:05 | 显示全部楼层 |阅读模式
比如现在有一个表,存放双色球历史开奖数据,从2003年到现在,总共800多期,格式如下:
期号           红1     红2      红3      红4      红5      红6
2003001     1        5         18        19      26        33
2003002    12      13        19        27      29        32
.
.
.
2009038     6       13         16       19       30       33
---------------------------------------------------------------------
问题1:每一期的开奖数据,在历史所有开奖数据(指总共的800多期)中出现几个数字(6、5、4、3、2、1、0),分别统计出现6、5、4、3、2、1、0的次数
问题2:同上,条件改为如下几种:本期之前的所有期,最近50期,最近100期,最近200期,2009年至今,2008年至今,2007年至今,等等
问题3:随便输入几行数据(每行数据中数字的个数>=6个),在历史开奖数据中(条件同问题1、2,可以是历史所有数据,也可以是某一段时间的数据)统计出现6、5、4、3、2、1、0个的次数
-------------------------------------------------------------------
我用公式来做,实在是一个庞大的工程,并且,每变换一种条件,都要把公式全部改一遍。
工作量太大,几乎是不可能实现的。
我想,用编程来实现应该是比较简单的,也是科学的办法
无奈自己不懂编程
恳请各位大侠出手相助!!!
-------------------------------------------------------------------
历史数据见附件

[ 本帖最后由 ccccjf 于 2009-4-6 10:33 编辑 ]

双色球历史数据对比.rar

36.13 KB, 下载次数: 1292

双色球历史开奖数据

TA的精华主题

TA的得分主题

发表于 2009-4-6 13:01 | 显示全部楼层
原帖由 ccccjf 于 2009-4-6 10:05 发表
比如现在有一个表,存放双色球历史开奖数据,从2003年到现在,总共800多期,格式如下:
期号           红1     红2      红3      红4      红5      红6
2003001     1        5         18        19      26   ...

帮你顶!

TA的精华主题

TA的得分主题

发表于 2009-4-6 14:22 | 显示全部楼层
顶起来,我也研究一下彩票,后面也可以试买一下双色球的彩票了

TA的精华主题

TA的得分主题

发表于 2009-4-6 20:20 | 显示全部楼层
楼主应该用手工做一个要求达到的效果,从附件看不出你想求哪一行的值?是要求S862:Y862的值?
如果有多种要求,应该详细说明。因为不是彩民,也不清楚你的希望。

TA的精华主题

TA的得分主题

发表于 2009-4-6 20:42 | 显示全部楼层
有蓝桥玄霜版主出手,成功了一半!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-6 22:08 | 显示全部楼层
J列以后的列,是我自己尝试的办法,极不科学,完全可以不看。
请版主按我的要求自己设计。
B列是开奖用的那一套球,I列是蓝号,这两列,和我们的问题无关。
我的问题,只用到 C列——H列 的红号 (双色球红号是33选6,每一期,从C列——H列的6个数字就是)
A列是期号,用来区分这个数据是那一期的,也是需要的
------------------------------------------------------------------------------
下面以 2009038期 (最后一行——第865行)为例,来说明我的要求
要查找2009038期的6个红号(表中 C865:H865)在以往的每一期中,相同的数字有几个
比如:2009038期的6个红号分别是:13  12  23  28  15  32,
它和2009037期的6个红号:18  20  15  6  31  2,只有1个相同的数字(15),即相同号码有1个;
和2009036期的6个红号:33  6  9  23  32  18,有2个相同的数字(23、32),即相同号码有2个;
......依次类推,从2009037期,一直到2003001期,
计算2009038期和以前每一期的开奖号码的6个红号,都有几个相同号码
(因为只有6个红号,所以可能性有7种,分别是:6 5 4 3 2 1 0)
然后,统计相同号码分别为 6 5 4 3 2 1 0 的各有多少次。
统计的结果也有是,2009038期的红号(6个号码),在历史上出现6个相同号码的次有有几次,5个相同号码有几次......1个相同号码有几次。
-------------------------------------------------------------------------
以上完成了2009038期的开奖号码和历史开奖号码(2003001——2009037)的比较,得到了一行数据(7个数字,放在7列中,分别表示相同号码为 6 5 4 3 2 1 0 的各有多少次)
接着,我们要完成2009037期的开奖号码和它之前的所有期(2003001-2009036)期的号码的比较,
......依此类推,把从2003002期开始的每一期,都和它之前的所有期的号码比较。
这样,我们可以用7列数据,把比较结果做成一个表格
------------------------------------------------------------------------
然后,我们需要做的,不仅公是把当期的开奖号码,和它之前的所有期比较
我们要变条件,
我们还想把当它和所有的历史开奖号码(总共的800多期比较)——比如上面的2009037期,它要比较的不是(2003001-2009036),而是(2003001-2009038)
再变条伯,和最近的50期比较,最近的100期,最近的200期,2009001至今,2008001至今。。。。。。
就是说,要比较的期数,最好能由自己灵活地指定,而不是只局限于一种。
不知道我说的清楚不?
如果不清楚,我再补充。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-6 22:36 | 显示全部楼层
我把表又重新改了一下
再次提醒,J列之后的列,是我自己用来说明的,版主可以删掉
---------------------------------------------------------------------------------------
比如R列的公式
R864单元格公式为:=COUNTIF($C864:$H864,$C$865)+COUNTIF($C864:$H864,$D$865)+COUNTIF($C864:$H864,$E$865)+COUNTIF($C864:$H864,$F$865)+COUNTIF($C864:$H864,$G$865)+COUNTIF($C864:$H864,$H$865)
第一个countif语句,就是查找C865单元格中的数字,在 C864:H864 区域中是否出现
第二个countif语句,就是查找D865单元格中的数字,在 C864:H864 区域中是否出现
.
.
.
一直到H865
然后把出现的次数相加,就得到结果:1,
即 2009038期的6个红球号码,在2009037期中,只有一个相同的号码
-------------------------------------------------------------------------------------------------
然后我把 R864中的公式,一直复制到 R3,
即,2009038期的6个红球号码,在以往的每一期中,各有几个相同号码
------------------------------------------------------------------------------------------------
J865中的公式 =COUNTIF($R:$R,6)
很简单,统计R列中,数值为6的数字有几个
K865中的公式 =COUNTIF($R:$R,5)
统计R列中,数值为6的数字有几个
依次类推,P865统计数值为0的数字有几个
Q865合计一下(也可以不要)  =SUM(J865:P865)

========================================================
最终我需要的结果,就是 J865:P865 这7个数字,这就是2009038期和历史数据的比较结果
(R列是中间值,只是在计算过程中用一下。因为我想不出好的办法,只能用这一整列做中间值。。。暴汗
=======================================================
这只是万里长征的第一步,接下来还要把2009037期。。。一直到2003001期,都做这样的比较。
接下来还要变换条件(不只是和全部历史数据比较,而且可以和指定的某一段时间内的数据比较)
如果按我的办法做下来,头比斗都大了。。。
所以请版主出手相助,不胜感激!

-----------------------=====+++++++++++++++
星彩网有一个历史号码比较器,随便选一组号码,用来和历史号码比较,还可以给出相应的期号
http://tool.starlott.com/bijiao/ssq.html
买彩时可以用。
++++++++++++++++++++++++++
我们要做的,是把以前开出的奖号,用以比较,统计一下结果,来找出一些规律
用这个规律,我们就知道,什么样的号码,中大奖的机率小一些,什么样的号码中奖机率大一些
当然,这些规律,都不是绝对的。
从概率上说,任何号码出现的机率都是一样的。。。
买彩,其实就是无中生有,自己找规律安慰自己罢了,哈哈

[ 本帖最后由 ccccjf 于 2009-4-6 22:59 编辑 ]

双色球历史数据.rar

26.61 KB, 下载次数: 664

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-7 12:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
最好是能做一个自定义的函数,如下:
myfun(value,array)
其中,value 表示所要查找的目标数据(某一期的开奖红球号码),比如:c865:h8865 表示 2009038 期的红号
      array 表示要从其中查找的区域(某一段时间内的开奖号码),比如:c3:h864 表示2003001——2009037期的红号
myfun() 函数得到的结果应该是一个一维数组,分别表示 2009038期的红号,和2009037期的红号有几个相同,和2009036期有几个相同,和2009035......2003001有几个相同。
----------------------------------------------------------------------------------------
然后,我们用excel自带的countif函数,来统计,条件分别为 6 5 4 3 2 1 0 就OK了。
比如:
countif(myfun(c865:h8865,c3:h864),6)
countif(myfun(c865:h8865,c3:h864),5)
......
countif(myfun(c865:h8865,c3:h864),0)
这样,就完成了对 2009038期的对比
其他各期,用法也相同
想变更条件时,只要更改函数的参数 array 即可
------------------------------------------------------------------
总结一下,这个函数的查询和一般的查询不同
一般的查询是给定一个值(或者只是一个单元格),然后从某一区域查询是否有相同的值
我们要做的查询是,给定一组值(可以看成是一个一维数组),查询某个区域中,每一行内,有几个相同的值。
这种查询,可能在别的方面有时也会用到,有一定的实用价值。

TA的精华主题

TA的得分主题

发表于 2009-4-7 12:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主何必费力气呢? 现在有很多彩票软件很好用的。。
给你几个链接。。 我曾经是个铁杆彩迷。。现在已经不买了。就守几组呢。。因为我还想留点钱买内库呢。。。玩彩不要太痴迷和当真。。。呵呵

飞彩网。。。有很多软件可下载。。博奥5331 最好用
乐彩网  也不错。。。
自己股歌搜索一下。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-4-7 12:51 | 显示全部楼层
谢谢楼上,软件我也下载试用了好多种
我做这个,只是想把历史数据拿来对比一下,从中找出一些规律
没有任何一种软件提供这个功能
所以只好自己弄了
和彩票有关的表格,我自己做了好多种了
网上的选号方法、杀号公式,我全部都用EXCEL做表,把历史数据全部验证一遍
别的表格都好弄,比较简单,用excel自带的函数就能完成
只是这一次,需要用到VBA,只好上论坛来求助了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-20 04:19 , Processed in 0.038400 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表