大家好,小菜鸟想请教关于如果使用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的数据分析功能也不是很熟悉,有点无从下手,希望大家给些建议或者方向。先谢谢了!
|