微信公众号:yhjbox(永恒君的百宝箱),获取最新文章、资源。

Excel VBA 实例(40)- 一键快速查询基金代码

Excel VBA 实例 永恒君 1276℃ 0评论

大家好,我是永恒君!

上次的实例分享了批量查询基金信息、基金净值:Excel VBA 实例(39)- 一键批量查询基金信息、基金净值

现在又有遇到另外一个情况!

需求背景

有过理财投资经验的朋友应该知道,关于基金的一切信息,最终必不可少的就是基金的代码

就好比人的身份证一样,代码就是基金的身份证,是基金的唯一标识,即每个基金的代码是不一样的。

图片

查询单个基金的代码,这个好办,东方财富等网站或者搜索引擎里面直接搜关键词基本就能搞定。

图片

如果需要查询多个基金的代码呢?永恒君网上查找了一番,貌似没有现成的工具可以使用。

那么就自力更生,今天来分享一个快速查询基金代码的VBA实例。

问题描述

如下图,我们搜集整理了一些基金的名称放在A列,需要找到对应的基金代码填入B列。

图片

思路分析

在搜索引擎里面直接搜索关键词,是可以找到我们需要的代码的。基于这个,永恒君的大体思路可以是这样的:

以关键词富国中证医药50ETF为例

1、在百度里搜索,提取前3页的网页标题。

图片

2、从这些标题当中提取所有的代码。

图片
图片
代码提取结果

3、统计都有哪些非空代码出现过

图片

4、统计这些代码出现的次数频率

图片

5、将出现次数最高的作为基金的代码。

图片

这样,我们就把富国中证医药50ETF的基金代码找到了。

至此,我们只需要把上面的过程整合一下就可以进行批量处理了。

效果演示

回到开头的那个表格,我们来演示一下效果:

图片
基金代码提取

因为是要进行网络请求,速度自然会受当时的网络环境有影响。不过可以看到,代码都还是都可以提取到的。

效果评测

1)下图是程序提取的代码和永恒君手工查找的代码对比。

细心点的朋友可能发现了,最后一条国联安中证半导体ETF代码和手工查找的是不一样的。

图片

经过永恒君反复调试和核对,是因为请求太频繁了,百度开启了安全验证,因而数据就没法抓取了。

图片
百度安全验证源码

故,将需要将请求的速度降下来,虽然提取的时间长了,但结果更让人满意了。

2)平时我们查找基金信息的时候,一般只会记住关键词,类似于基金公司+行业/主题/指数等的模式。

例如全名为汇添富中证主要消费ETF的基金,代表汇添富公司发行的跟踪中证主要消费指数的etf基金,通常提到的关键词是汇添富 消费ETF

也就是说,通常会是在百度里搜索关键词汇添富 消费ETF,而不是汇添富中证主要消费ETF

那类似这样的只输入基金的关键词,还能提取到正确的代码吗?我们来看看

图片

最终效果还是挺满意的。

图片

3)经过测试使用,能够找对大部分的基金代码。但是也因为算法的局限,有可能少部分会提取不到,但基本已经够用了。

如果请求次数太多太频繁,可能提取不到百度的搜索结果。

如果百度搜索到的代码,出现的次数频率相同的情况,提取的代码就可能会不完整或者有误。

再比如搜索的关键词可能会对应多只基金,那么可能会存在不一致的问题。

小结

我们的需求是:找到基金对应的代码

方法思路:

  • 提取百度搜索结果的标题
  • 提取标题中的代码
  • 统计都有哪些出现过、出现的次数频率
  • 将出现次数最高的作为基金的代码。

总体而已,这个方法效率方面一般,但是只要控制好网页请求的频率,代码提取正确率还是蛮不错的。

对今天这个实例感兴趣的话,可以在微信公号内回复「代码」获取vba文件,或者点击这里查看进行试用吧~~

微信公众号:yhjbox(永恒君的百宝箱)
个人博客:www.yhjbox.com

转载请注明:永恒君的百宝箱 » Excel VBA 实例(40)- 一键快速查询基金代码

喜欢 (5)
发表我的评论
取消评论
表情