• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

游客您好
Lv.2 注册会员
486号会员,162活跃度,2018/11/14 加入学习
  • 88发帖
  • 5主题
  • 0关注
  • 0粉丝
这个人很懒,什么也没有留下。
优秀讲师更多
课堂交流更多

[已解决] 数据建模方法求助,这种数据结果如何组建表间关系

[复制链接]
Asker 发表于 2020-9-16 06:35:19 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
自己搞了一些数据导出到txt文件,格式都是一样第一列日期时间,第二列股票代码,第三列值。
然后现在有5个txt数据我作为外部数据源连接到excel里:
1.涨停板数表:
2019/06/2460000112019/06/25600001-12019/07/1060000112019/07/1160000122019/07/1260000132019/07/1560000142019/07/02600002-12019/07/0560000212019/07/0860000222019/07/0960000232019/07/10600002-12019/07/1260000212019/07/15600002-12019/07/08600003-12019/07/1560000312019/07/1660000322019/07/1560000312019/07/166000032
第三列这里面-1代表涨停后炸板,1代表当天该股第一次涨停,2代表联系第二次涨停以此类推3、4、5。。。
然后这个表里只会显示每天有出现-1、1、2这种涨停或炸板状态的股票,意味着这个表里会每天都对应不同的多个股票,每天每个股票对应各自一种状态。对于股票来说,他的日期列的日期是不固定的但不重复的,比如当天涨停了才在该表出现,出现的话他的日期列是唯一的。意味着这个表里日期列是重复的,股票列也是重复的,但日期+股票组合在一起是不重复的唯一的 。被我说的有点绕,你们应该能看懂吧。。

2.成交额表,第三列为当天出现在1表的股 当天该股成交多少万元:
2019/06/246000011002019/06/256000012002019/07/106000013002019/07/116000011002019/07/126000012002019/07/156000012102019/07/026000022202019/07/056000022302019/07/086000022402019/07/096000022502019/07/106000022602019/07/126000022702019/07/156000022802019/07/086000032902019/07/156000033002019/07/166000033102019/07/156000033202019/07/16600003330
3.涨幅表:第三列代表第三列为当天出现在1表的股 该股第二天涨幅,但是该股如果第二天停牌的不会显示在该表里
2019/06/24600001-12019/06/2560000122019/07/106000013.52019/07/1160000142019/07/126000016.252019/07/156000017.92019/07/026000029.552019/07/056000020.22019/07/086000023.12019/07/09600002-2.42019/07/10600002-2.32019/07/12600002-3.62019/07/156000021.62019/07/08600003-6.22019/07/156000032.62019/07/16600003-8.82019/07/156000032

4.大盘成交额表:每天都会有数据,没有数据的是休市日所有股票没交易
2019/07/0899999910002019/07/0999999910022019/07/1099999910042019/07/1199999910062019/07/1299999910082019/07/1599999910105.股票名称表:记录股票代码对应的股票名称
600001股票A600002股票B600003股票C

实际处理不止这5种表,只是想表达个大概意思,另外股票个数有三四千只,数据有几百天,每只股票单独列个表感觉不现实
我现在的目的是做个图表,可以显示:
1.图表比如柱状图显示每天板数最高的股及其股票名称,用到板数表和股票名称表(1、5表)
2.切片器显示对应选定日期(或日期范围内统计)每个单独板数(或多个选定板数)总计数及对应总成交额和平均涨幅。
比如折线图上显示最近5天所有1板每天总数量及总成交额、均涨幅
3.每天不同板数之间的比较,比如-1炸板和>=1板的股票计数比较及均涨幅比较
4.每天整个市场的统计,当天大盘成交额、涨停(>=1板)数量统计、炸板(-1)数量统计、以及对应涨幅统计之类,做成每天一行数据的总览表

大概这4点吧,还有很多其他需要实现的,如果这3点能解决的话应该可以参照搞出来
我为了向达成上述目标,最近开始学powerBI pivot query这些 不过还是一知半解不知道我这个怎么处理,因为教程里多数是一对多 多对一的关系模型
我这个案例里应该算多对多,多对多的话excel里还没支持,BI里没闹明白。。
另外我这个1表板数表应该算事实表吧?应该围绕他来建立关系
还有我是想着可以把1、2、3表合并在一起(但是2、3表可能有不存在对应1表的值会被放空),这个用query不知道怎么做(用vba的话倒是会,但是考虑到刷新数据是根据这几个txt文件来处理的,所以尽量不用vba另外处理),这样合并后处理数据是不是更好一些
希望各位大大能指点下大概怎么操作。字数上限
回复

使用道具 举报

精彩评论15

英杰 发表于 2020-9-16 06:41:19 | 显示全部楼层
要求有点多贪心了点。。只希望有些指导性的建议,附上txt附件
9975012216365.zip (1.47 MB, 下载次数: 0)


txt数据源
回复

使用道具 举报

zdaye 发表于 2020-9-16 06:46:19 | 显示全部楼层
其实,我也不懂股市。
尝试理解下lz 的意思弄出来了,文件放在data文件夹同路径就能打开查看。
里面就pq的几个查询处理有点作用,其他的意思意思下吧...


9975012216361.png 9975012216362.png 9975012216363.png 9975012216364.png
回复

使用道具 举报

wuliaostar 发表于 2020-9-16 06:50:19 | 显示全部楼层
附件加载数据后,超过论坛限制大小了,下载后先刷新下再用
9975012216366.zip (379.05 KB, 下载次数: 0)
回复

使用道具 举报

sunshinerock 发表于 2020-9-16 06:57:20 | 显示全部楼层
附件加载数据后,超过论坛限制大小了,下载后先刷新下再用


感谢解答,附件让我又学到不少知识点
1. = LEFT(CELL("filename"),FIND("[",CELL("filename"))-2) 获取当前路径作为表格 让query高级编辑器引用excel同目录文件夹刷新数据源 免去额外修改
2. 刷新出现提示“将引用其他查询或步骤,因此可能不会直接访问数据源。请重新生成此数据组合。”,在query里:点击文件-文件和设置-查询选项,把隐私设置为始终忽略即可。
3.Table.NestedJoin(table1 as table, key1 as any, table2 as any, key2 as any, newColumnName as text, optional joinKind as nullable number, optional keyEqualityComparers as nullable list) as table
合并表原来需要选择列。。我说我怎么都合并不了,合并列的时候点击两个列的顺序也有要求
回复

使用道具 举报

yunfeng 发表于 2020-9-16 07:04:20 | 显示全部楼层
附件加载数据后,超过论坛限制大小了,下载后先刷新下再用


我现在做到关系这一步结束
但是制作图表的时候总是达不到我想要的效果
比如第一个表最高板,我照着设定总是做不出一天只对应一只股票,而是每天每只股票的各自板数都会显示,这是哪里的问题。。新手多指教哈
回复

使用道具 举报

十六 发表于 2020-9-16 07:08:20 | 显示全部楼层
我现在做到关系这一步结束
但是制作图表的时候总是达不到我想要的效果
比如第一个表最高板,我照着设定 ...


这个是数据透视表的功能,行那显示日期和股票名称,然后在股票名称那右键》筛选》前10项,根据需要只显示第一名的。
回复

使用道具 举报

zihan 发表于 2020-9-16 07:12:20 | 显示全部楼层
这个是数据透视表的功能,行那显示日期和股票名称,然后在股票名称那右键》筛选》前10项,根据需要只显示 ...


看到了。。真心感谢!
excel功能很多很琐碎的,百度如果关键词没多试一些多翻翻很容易就漏了自己需要的答案
只能一步步来
这点感觉比学vba难。。vba这种至少有手册教程什么的,excel这种小知识点太多了。。
回复

使用道具 举报

ah_Ben 发表于 2020-9-16 07:17:20 | 显示全部楼层
这个是数据透视表的功能,行那显示日期和股票名称,然后在股票名称那右键》筛选》前10项,根据需要只显示 ...


另外想请教下我目前自己建模用的query 通过高级编辑器把几个和板数相关的表成交额、涨幅、板数名称合并在一起,其他表只剩下大盘成交额(用来提供日期,没有自己新建日期表),还有股票名称表。这样应该效果也是一样的吧。
但是实际用起来感觉还是有点卡,很耗内存,有时候容易内存溢出停止运算了。所以想问下你的这种分表的方式更有效率还是我这种合并在一起更省资源。有没有其他的地方需要注意可以节省资源的?
回复

使用道具 举报

smh 发表于 2020-9-16 07:21:21 | 显示全部楼层
这个是数据透视表的功能,行那显示日期和股票名称,然后在股票名称那右键》筛选》前10项,根据需要只显示 ...


还有个问题,不知道excel有没有相关的功能,我之前板数表不是分的-1、1、2、3、4。。。这样吗,这属于一种分组方式,还有另外两种,一种是-1、1、(2、3、4、5。。。),3组;另一种是-1、(1、2、3、4。。。)2组,我做筛选的时候如果要选择后面括号多种组合的话需要点选多次,有没有一种类似对切片器组合功能的设置,目前我用的方法是在板数名称表里另外加了两列分别分组,这样有点浪费资源,不知道有没更好的方法,谢谢~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

全国统一客服电话
025-66044769

24x7小时免费咨询

  • 关注官方微信

  • QQ在线客服1

    在线联系

    QQ在线客服2

    在线联系
  • 南京优易多网络科技有限公司
  • 南京市六合区龙池街道雄州南路399
Powered by Discuz!X3.4 ©2015-2019 YouYiDuo Inc. 南京优易多网络科技有限公司 版权所有( 苏ICP备16017959号-5 )