楼主: lry897931392
1406 2

[问答] 急求一个excel VBA问题,在一堆公司中筛选出有过利润连续三年增长的,将其记录下来 [推广有奖]

  • 0关注
  • 0粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
966 个
通用积分
0.0001
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
123 点
帖子
4
精华
0
在线时间
13 小时
注册时间
2018-3-19
最后登录
2020-8-28

楼主
lry897931392 发表于 2020-3-17 09:56:20 |AI写论文
10论坛币
我有2000-2018所有上市公司的利润数据,想在当中筛选出存在过利润连续3年增长的公司,请问这个能用VBA实现吗,如果不能的话有没有其他方法呢
比如编号为0001的公司,在2015-2017年出现了连续三年利润增长
编号  年份  利润
0001 2018   1亿
0001 2017   7亿
0001 2016   6 亿
0001 2015   5亿
0001 2014   20亿
0001 2013   21亿
。。。
0001 2000  2亿
就像这样,只要在这19年间,有任意3年出现了连续增长,就把这一类公司挑出来。
我的想法是,用for循环,在每一个循环中,连续比对上一年的利润,如果出现了连续三次本年利润高于上一年,就记录下这个编号。

关键词:EXCEL xcel exce 筛选出 cel

沙发
乌贼07 发表于 2020-4-29 09:21:41

您看这样行不?

求解结果显示.JPG




求解结果公式显示.JPG


藤椅
0zzzh 发表于 2020-5-1 21:41:14
VBA查询连续三年利润增长.png

  1. Sub 连续三年增长()
  2. Range("D:D").Clear
  3. Dim a, b As Integer
  4. For b = 1 To (Application.WorksheetFunction.CountA(Range("a:a")) - 1) / 19
  5.     For a = 0 To 17
  6.     If Cells(2 + a + 19 * (b - 1), 3) > Cells(3 + a + 19 * (b - 1), 3) And Cells(3 + a + 19 * (b - 1), 3) > Cells(4 + a + 19 * (b - 1), 3) Then
  7.     Range("D" & 2 + a + 19 * (b - 1) & ":D" & 4 + a + 19 * (b - 1)) = "连续三年增长"
  8.     End If
  9.     Next
  10. Next
  11. End Sub
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 12:58