【问题标题】:Multi-Line Excel to New Row Per Line多行 Excel 到每行新行
【发布时间】:2015-03-28 13:21:48
【问题描述】:

我有一个大的 excel 文件,它的 5000 行样本上传here

该文件包含有关员工的数据如下:

First Column: Employee Name
Second: Employee ID
Columns 3-7:  Experiences (Multiline Values)
3: Career Name
4: Rank
5: From
6: To
7: Reason For Leaving
Columns 8-13: Managerial Jobs
Columns 14-17: Education
Columns 18-26: Courses

现在每个员工将有许多多行值用于经验、管理工作、教育和课程,换句话说,他在同一行的每一行都有许多课程

现在需要如下: Excel 宏 (VBA):

  1. 将带有标题的每个员工(行)移动到同一工作簿中的新工作表,并使用位于第 2 列的员工 ID 命名工作表(此代码已准备好)

  2. 对于每个多行值(以教育为例),应将每一行添加到单独的行中

  3. 如果可能按日期对每个多行值进行排序,从旧到新。 就是这样,

在附件的excel文件中,我做了第一个员工,是否可以对大约5000名员工重复此操作,如果没有,您建议使用什么数据库,Microsoft Access可以吗?

【问题讨论】:

  • 对不起,题主错了,应该是多行excel到每行新行
  • 我假设您的帖子应该说“此代码已读取y”。我将进行编辑。

标签: database vba excel ms-access


【解决方案1】:

虽然 Excel 理论上可以处理 5000 个工作表,但我不建议创建这样的工作簿。

即使只有几百张工作表,Excel 工作簿也会变得非常笨拙。性能可能是一个问题,但导航是一个更大的问题!底部的水平列表中仅显示少数工作表。使用 VBA 可以创建菜单以更快地访问特定工作表;但系统仍然远非完美。

这听起来确实像 Access 数据库会是一个更好的选择。

我建议为员工提供一个表(这将有大约 5000 条记录),其中每个员工都有一个唯一的 ID。职业名称和等级等“单行”字段也可以输入此处。

然后,您将使用员工表中的外键为每个“多行”字段创建另一个表

【讨论】:

  • 谢谢,我在excel上试了个demo,然后将所有这些操作转换成带有数据库功能的mysql
【解决方案2】:

是的,有可能,带有 VBA 子程序的 Excel 可以处理所有这些。 MS Access 也可以,但据我所知,它无法在现有 Excel 文件中将表格创建为工作表。

【讨论】:

  • 谢谢@user3819867,excel能处理5000张,每张都包含数据吗?
  • 我从未使用过 5,000 张工作簿,但理论上只有 Limited by available memory。如果单个工作簿无法处理它们,您始终可以将它们放在多个工作簿中。
  • @user3819867 请将您的评论添加到您的答案中;)。
猜你喜欢
  • 2017-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-08
  • 2017-11-23
  • 1970-01-01
相关资源
最近更新 更多