ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何用EXCEL编程实现基金股票数据处理简便自动化

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-7-12 20:01 | 显示全部楼层 |阅读模式

大家好,小菜鸟想请教关于如果使用VBA来实现高效数据处理。

简单说来就是需要根据大量的数据算出一个叫产业组集中指数的指数。

初始数据包括股票价格P,市场股票数量N,基金所持股票数量H,基金中每支股票的原始产业分类(共有37类)。以下是数据的。

原始产业分类I


股票价格P


所持股票数量H


市场股票数量N in1000s


110


70.15


1000000


167031


115


23.41


612600


92060


105


52.02


1927216


1169426


119


58.3


8931370


2536238


134


51.66


1633707


42791


111


46.37


4736900


178270



原始产业分类I


产业分组


110


1


115


1


105


10


119


10


134


3


111


3



大致做出来会是一下的样式。


产业组                                                                                             


所持市场占有额


市场占有额


所持市场比重


市场比重


1 Total


1602771960


1.79698E+11


3.89%


2.08%


10 Total


5676648500


1.20178E+12


13.78%


13.90%


11 Total


1014136573


1.22725E+11


2.46%


1.42%


2 Total


177840000


30952151160


0.43%


0.36%


3 Total


3835970379


4.23933E+11


9.31%


4.90%


4 Total


14241027752


2.81187E+12


34.57%


32.53%


5 Total


1218479011


1.11494E+11


2.96%


1.29%


6 Total


207445000


58795621840


0.50%


0.68%


7 Total


5256166310


2.65245E+12


12.76%


30.68%


8 Total


6222706454


8.84077E+11


15.11%


10.23%


9 Total


1740586375


1.66787E+11


4.23%


1.93%


Grand Total


41193778314


8.64456E+12













但是因为我是采用手动操作,非常耗时。所以跪求大家给点建议。下面是对问题的描述,请好心人耐心看看。。

任务一:产业分类
1.将这支基金内所持的所有股票根据原始产业分类集合成11个产业组。依据一个分组表来划分,比如说如果产业号是102106110等,便归类为1

现在用的方法是用if函数(如下),手动分类

=IF(OR(B2=102,B2=106,B2=110,B2=115,B2=127,B2=132,B2=133),"1",IF(OR(B2=104,B2=117),"2",IF(OR(B2=116),"3",IF(OR(B2=101,B2=103,B2=107,B2=109,B2=111,B2=112,B2=118,B2=122,B2=125,B2=126,B2=134),"4",IF(OR(B2=113,B2=124),"5",IF(OR(B2=135),"6",IF(OR(B2=131),"7",IF(OR(B2=108,B2=123,B2=130),"8",IF(OR(B2=121,B2=129),"9",IF(OR(B2=105,B2=114,B2=119,B2=120,B2=128),"10","11"))))))))))

任务二:求出每个产业的所持市场比重

2. 在已经分好的11个产业组内,用股票价格P乘以所持股票数量H并在产业组内部求和,算出每个产业组内的所持市场占有额

现在用的方法是手动先算乘积,然后用subtotal来算出11个产业中的和
3. 把步骤2中得出的11个数求和
现在用的方法是subtotal里面自动会求出总和
4.步骤2的结果除以步骤3的结果,算出每个产业的所持市场比重,j=1,2..11
现在用的方法是:手动11次算出比重
任务三:求出每个产业的市场总比重
5.在每个产业组内,用股票价格P乘以市场股票数量N再乘以1000因为这个原始数据是以1000为单位的并在产业组内部求和, 算出每个产业组内的市场占有额

现在用的方法是同步骤2
6. 把步骤5中得出的11个数求和
现在用的方法是同步骤3
7. 用步骤5的结果除以步骤6的结果,算出每个产业的市场比重 j=1,2..11
现在用的方法是同步骤4
任务四:根据两组比重算出产业集中指数
8.用步骤4步骤7分别得出的2组比重(一共是22个数)算出Industry ConcentrationIndex (ICI) ,公式如下
现在尚未算出


我的问题在于:

如何能够通过VBA或者宏来实现简化自动化分类并且运算。因为我至少需要50100个基金,而每支基金大都含有200支以上的股票,而且这样算出的一个指数的时间区间只是一个季度,我需要算出5年即20个季度的指数来。那么就是有1000次这样的运算。

因为没有相关的编程的背景,对于excel的数据分析功能也不是很熟悉,有点无从下手,希望大家给些建议或者方向。先谢谢了!


TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-12 20:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
自己顶一个

TA的精华主题

TA的得分主题

发表于 2012-11-17 17:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-3-15 16:39 | 显示全部楼层
大家好,小菜鸟想请教关于如果使用VBA来实现高效数据处理。



简单说来就是需要根据大量的数据算出一个叫产业组集中指数的指数。



初始数据包括股票价格P,市场股票数量N,基金所持股票数量H,基金中每支股票的原始产业分类(共有37类)。以下是数据的。



原始产业分类I



股票价格P



所持股票数量H



市场股票数量N in1000s




110



70.15



1000000



167031




115



23.41



612600



92060




105



52.02



1927216



1169426




119



58.3



8931370



2536238




134



51.66



1633707



42791




111



46.37



4736900



178270





原始产业分类I



产业分组




110



1




115



1




105



10




119



10




134



3




111



3





大致做出来会是一下的样式。




产业组                                                                                             



所持市场占有额



市场占有额



所持市场比重



市场比重




1 Total



1602771960



1.79698E+11



3.89%



2.08%




10 Total



5676648500



1.20178E+12



13.78%



13.90%




11 Total



1014136573



1.22725E+11



2.46%



1.42%




2 Total



177840000



30952151160



0.43%



0.36%




3 Total



3835970379



4.23933E+11



9.31%



4.90%




4 Total



14241027752



2.81187E+12



34.57%



32.53%




5 Total



1218479011



1.11494E+11



2.96%



1.29%




6 Total



207445000



58795621840



0.50%



0.68%




7 Total



5256166310



2.65245E+12



12.76%



30.68%




8 Total



6222706454



8.84077E+11



15.11%



10.23%




9 Total



1740586375



1.66787E+11



4.23%



1.93%




Grand Total



41193778314



8.64456E+12
















但是因为我是采用手动操作,非常耗时。所以跪求大家给点建议。下面是对问题的描述,请好心人耐心看看。。

任务一:产业分类

1.将这支基金内所持的所有股票根据原始产业分类集合成11个产业组。依据一个分组表来划分,比如说如果产业号是102,106,110等,便归类为1组



现在用的方法是用if函数(如下),手动分类



=IF(OR(B2=102,B2=106,B2=110,B2=115,B2=127,B2=132,B2=133),"1",IF(OR(B2=104,B2=117),"2",IF(OR(B2=116),"3",IF(OR(B2=101,B2=103,B2=107,B2=109,B2=111,B2=112,B2=118,B2=122,B2=125,B2=126,B2=134),"4",IF(OR(B2=113,B2=124),"5",IF(OR(B2=135),"6",IF(OR(B2=131),"7",IF(OR(B2=108,B2=123,B2=130),"8",IF(OR(B2=121,B2=129),"9",IF(OR(B2=105,B2=114,B2=119,B2=120,B2=128),"10","11"))))))))))



任务二:求出每个产业的所持市场比重



2. 在已经分好的11个产业组内,用股票价格P乘以所持股票数量H并在产业组内部求和,算出每个产业组内的所持市场占有额



现在用的方法是手动先算乘积,然后用subtotal来算出11个产业中的和


3. 把步骤2中得出的11个数求和


现在用的方法是subtotal里面自动会求出总和

4.用步骤2的结果除以步骤3的结果,算出每个产业的所持市场比重,j=1,2..11


现在用的方法是:手动11次算出比重


任务三:求出每个产业的市场总比重


5.在每个产业组内,用股票价格P乘以市场股票数量N再乘以1000(因为这个原始数据是以1000为单位的)并在产业组内部求和, 算出每个产业组内的市场占有额



现在用的方法是同步骤2

6. 把步骤5中得出的11个数求和

现在用的方法是同步骤3

7. 用步骤5的结果除以步骤6的结果,算出每个产业的市场比重 j=1,2..11

现在用的方法是同步骤4


任务四:根据两组比重算出产业集中指数


8.用步骤4和步骤7分别得出的2组比重(一共是22个数)算出Industry ConcentrationIndex (ICI) ,公式如下

现在尚未算出




我的问题在于:



如何能够通过VBA或者宏来实现简化自动化分类并且运算。因为我至少需要50到100个基金,而每支基金大都含有200支以上的股票,而且这样算出的一个指数的时间区间只是一个季度,我需要算出5年即20个季度的指数来。那么就是有1000次这样的运算。



因为没有相关的编程的背景,对于excel的数据分析功能也不是很熟悉,有点无从下手,希望大家给些建议或者方向。先谢谢了!



TA的精华主题

TA的得分主题

发表于 2013-11-25 23:40 | 显示全部楼层
我想做一个基金定投计划的表格,里面包含定投基金名称,原始的拥有的基金份额,定投时间,沪深当天指数,确认的份额,然后计算月末的基金盈亏,最好就是还能查找每个基金的持仓的股票什么的。听上去还挺复杂吧?如果有高手知道如何操作,希望能指点一二。具体需要什么知识?涉及编程的内容吗?仅靠EXCEL的知识能不能解决?

TA的精华主题

TA的得分主题

发表于 2013-12-16 10:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
没有结果了吗
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 03:37 , Processed in 0.031117 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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