作者:绿色风
分类:
时间:2022-08-17
浏览:232
楼主 嘉昆2011 |
利用网络挖掘数据形成分析报表或图表成为如今较新的数据获取手段,主要利用XML,CSV等文件快速从网络抓取所需数据。 先看Nasdaq官方网站上所提供的实时热力色阶图,指针所指处会详细显示公司名称,股票涨幅,最高/低价,成交量等信息。
仿制主要思路: 1,从Yahoo财经网站上读取所需的实时数据,生成CSV文件。方法可以参考链接:- 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的单元格区域,输入公式:- =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,单元格条件格式)表示:- =PERCENTILE(Sheet2!D$4:D$28,1-SUM(A$24:A24))
- =INDIRECT("Sheet2!"&ADDRESS(ROW()+COLUMNS($A:A)-1+4*(ROW(1:1)-1),4,2))>=$B$24
3,建立名称标签,制作公司信息框与单元格之间的动态链接 公司简称:- =OFFSET(Sheet2!A4,5*MOD(sRow+1,5)+MOD(sColumn-1,5),0)
价格等:- =INDEX(Name,MATCH(Sheet1!C32,Symbol,0))
注:一二维数据的之间的读取转换,主要利用Mod/Row/Column/Int进行整合。
4,简单VBA显示公司信息- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- If Not (Application.Intersect(ActiveCell, ActiveSheet.Range("F4:J8").Cells) Is Nothing) Then
- Call sDetail
- Else
- ActiveSheet.Shapes("ShowDetail").Visible = False
- End If
- End Sub
模块代码:- Function sDetail()
- If ActiveCell.Value = "" Or VBA.IsNumeric(ActiveCell.Value) Then
- Exit Function
- Else
- [sRow] = ActiveCell.Row
- [sColumn] = ActiveCell.Column
- With ActiveSheet.Shapes("ShowDetail")
- .Left = ActiveCell.Left + 100
- .Top = ActiveCell.Top + 20
- .Visible = True
- End With
- End If
- 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总版主之一