Excel 将数据批量添加到现有工作表

Excel 将数据批量添加到现有工作表

我有一张 Excel 表,用于记录参加过某些活动的人员。现在我想添加一个包含数百名人员的活动,其中一些人员已经参加了其他活动。然后我想按他们参加活动的时间进行排序。

澄清:

截屏

实现这一目标的最简单的方法是什么?

谢谢 :)

答案1

这是一个不使用 VBA 的解决方案。当任务比每月一次的任务更罕见时,我会推荐它。

这就是您设置数据的方式 - 注意,cols AD 是“新 cols”。

这是设置

以下是公式 - 将它们设置在第 2 行,然后向下复制:

A2=IF(ISBLANK(F2),INDEX(J:J,ROW()-COUNTIF(F:F,"*")+1),F2)

B2=IFERROR(T(VLOOKUP($A2,$F:$H,2,FALSE)),"")

C2=IFERROR(T(VLOOKUP($A2,$F:$H,3,FALSE)),"")

D2=IFERROR(T(VLOOKUP($A2,$J:$K,2,FALSE)),"")

A2从当前活动表中填写所有名称,直到获得空白单元格。然后,您开始从新活动表中填写名称,使用COUNTIF获取非空单元格的数量并ROW获取+1正确的INDEX/ 名称。

现在您只需对您的活动进行单独查找。

如您所见,您将获得重复项,但它们可以轻松处理。我的建议是 - 将区域 AD 作为值复制到另一个目标,然后使用内置的重复项清除器数据标签。

当然,您可以使用 VBA 来完成此任务,但这项任务通常由缺乏经验的用户完成 - 而要创建用户安全的动态版本,需要编写相当多的代码,并且需要完成更多细节。不过,我想提醒您,这是一项基本的数据库任务,使用数据库函数可以更轻松地完成。

答案2

既然你提到“我想按他们参加某项活动的时间排序”,我假设你的 X 代表时间(@Jook 的答案对此不起作用)。但是,下面的方法适用于时间(或经过轻微调整的 X),并且不使用公式(除了图标下的内容):

假设新活动 3 在名称右侧的列中有值:-

  1. 将现有工作表数据和标题复制到新工作表中。
  2. 立即将新活动 3 的数据副本附加到该工作表中。
  3. 将名称以外的新活动 3 数据跨两列移动到右侧。
  4. 将“活动 2”标签向右拖移一个单元格。
  5. 选择整个工作表,数据 > 排序和筛选 - AZ。
  6. 数据 > 大纲 > 小计,每次更改时:名称,使用函数:最大值,添加小计到:检查活动 1、活动 2 和活动 3 中的每一个,检查替换当前小计和数据下方的摘要,确定。
  7. 复制选择性粘贴>值,确定。
  8. 数据 > 排序和过滤 - 过滤,对于名称列文本过滤器,不包含输入 MAX,确定。
  9. 删除除带有标签的行之外的所有可见行。
  10. 数据 > 排序和过滤 – 过滤。
  11. 选择名称列,主页 > 编辑 > 查找和选择,替换,在查找内容:中输入“ MAX”(不带引号),全部替换,确定,关闭。
  12. 选择整个工作表,数据 > 大纲 > 小计,全部删除。
  13. 删除名称为“Grand”的行。
  14. 选择活动列,主页 > 单元格 - 格式,格式化单元格,自定义,dd/mm/yyyy hh:mm;;"" 或适合,确定。
  15. 节省。

这样,结果将按名称顺序排序,而不管时间如何,然后可以按活动进行排序,但是,考虑到布局,不能方便地按活动排序,无论是 1、2 还是 3。

相关内容