从其他表中获得某些年份

时间:2017-04-12 11:35:45

标签: excel excel-vba excel-formula vba

在工作中,我们有一个包含多个(40-50)工作表的工作表。每个工作表代表一定的研究。每张表上都有几个人,姓名,姓名,开始学习(日期),生日等。我们有一个工作表和概述。 (工作表研究1,工作表研究2,工作表研究3)。

有没有办法,我可以在概述上放置一个专栏,并筛选已加入研究的人员。 (所以所有参加2016年研究的人,但不是那些没有参加过研究的人。)我有一个研究开始日期的专栏,但是人们可以在研究开始后加入研究。

我已经尝试过使用过滤器,并尝试了一些数据验证,但我无法接近一个解决方案。有没有人可以让我走上正轨?

1 个答案:

答案 0 :(得分:1)

我在这里做了一些假设:

  • 我假设研究的每个工作表都采用相同的格式
  • 研究中的人(您想要的数据)位于每张表的标准化位置

一种解决方案是在VBA中执行一些代码。您可以遍历每个工作表(显然不会调用'概述')并为变量分配要存储的详细信息的范围,然后遍历该范围内的每个单元格,并记录在数组中包含符合条件的任何人的姓名。

例如,如果您的每个学习单都有一个参与者列表,如下所示: Participant List

您可以将范围变量定义为[Worksheet] .Range(" A5:A12"),然后说:

For Each <cell> in <range>.Cells
If Year(<Worksheet>.Cells(<cell>.Row, <cell>.column + 1).Value) = 2017 Then
<assign the contents of <cell> to an Array>
Next <cell>

一旦您浏览了每个工作表,就可以将数组的内容输出到概述表或其他地方的任何所需位置。 这将是一种方法的基本概念。我要强调的是,你的数据听起来就像是MS Access数据库的理想选择(我从个人经验中知道,有些公司/部门害怕任何不是Excel的东西,所以我觉得你的痛苦!)

相关问题