ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E文精选 > 综合应用 > 挖掘网络实时财经数据,制作热力色阶单元图表

挖掘网络实时财经数据,制作热力色阶单元图表

作者:绿色风 分类: 时间:2022-08-17 浏览:153
楼主
嘉昆2011
利用网络挖掘数据形成分析报表或图表成为如今较新的数据获取手段,主要利用XML,CSV等文件快速从网络抓取所需数据。
先看Nasdaq官方网站上所提供的实时热力色阶图,指针所指处会详细显示公司名称,股票涨幅,最高/低价,成交量等信息。

 

仿制主要思路:
1,从Yahoo财经网站上读取所需的实时数据,生成CSV文件。方法可以参考链接:
  1. http://www.gummy-stuff.org/Yahoo-data.htm
文中作者详细剖析了,如何利用VBA向Yahoo发送请求,Yahoo特有的财经字段代码,数据分列等内容(数据筛选部分可以略去不看)。

2,热力色阶图制作
主要运用:
函数,主要包括Indirect,Row/Column,Index/Match,Offset,Percentile
条件格式,制作热力色阶
VBA,读取公司实时股票信息

制作步骤:
1,读取网络CSV文件后,在新工作表的合适区域建立5 X 5的单元格区域,输入公式:
  1. =INDIRECT("Sheet2!"&ADDRESS(ROW()+COLUMNS($A:A)-1+4*(ROW(1:1)-1),1,2))&CHAR(10)&TEXT(INDIRECT("Sheet2!"&ADDRESS(ROW()+COLUMNS($A:A)-1+4*(ROW(1:1)-1),4,2)),"0.00%")
公式虽长,但仔细分析,主要由两部分组成,Char(10)前面是读取公司代码,后面是读取当前涨跌幅度,用Text函数固定格式。

 

2,根据当前各股表现制作热力色阶图,颜色越绿表明有涨幅领先,越红则跌幅量大。
制作一个对照表

 
如表现排前5%(公式1)的公司,用绿色(公式2,单元格条件格式)表示:
  1. =PERCENTILE(Sheet2!D$4:D$28,1-SUM(A$24:A24))
  1. =INDIRECT("Sheet2!"&ADDRESS(ROW()+COLUMNS($A:A)-1+4*(ROW(1:1)-1),4,2))>=$B$24
3,建立名称标签,制作公司信息框与单元格之间的动态链接
公司简称:
  1. =OFFSET(Sheet2!A4,5*MOD(sRow+1,5)+MOD(sColumn-1,5),0)
价格等:
  1. =INDEX(Name,MATCH(Sheet1!C32,Symbol,0))
注:一二维数据的之间的读取转换,主要利用Mod/Row/Column/Int进行整合。

4,简单VBA显示公司信息
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. If Not (Application.Intersect(ActiveCell, ActiveSheet.Range("F4:J8").Cells) Is Nothing) Then
  3.         Call sDetail
  4.     Else
  5.         ActiveSheet.Shapes("ShowDetail").Visible = False
  6.     End If
  7. End Sub
模块代码:
  1. Function sDetail()
  2.     If ActiveCell.Value = "" Or VBA.IsNumeric(ActiveCell.Value) Then
  3.     Exit Function
  4.     Else
  5.         [sRow] = ActiveCell.Row
  6.         [sColumn] = ActiveCell.Column
  7.         With ActiveSheet.Shapes("ShowDetail")
  8.             .Left = ActiveCell.Left + 100
  9.             .Top = ActiveCell.Top + 20
  10.             .Visible = True
  11.         End With
  12.     End If
  13. End Function
仿制效果:

 

附件:

NASDAQ.rar

2楼
xyf2210
很强大
3楼
YESS95
昆哥,你还是人吗?
4楼
amiaosheng
太强大了  图表又美观!
5楼
三条变八筒
昆哥牛X了!
6楼
roman0
太强大了
7楼
xenius
很强大
8楼
fanglilian
不是普通厉害啊
9楼
bensonlei
真是活学活用的好例子。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap