用Excel创build对比表的最有效的方法是什么?

使用Excel(主要是VBA部分),我想要做以下事情:

我有两个不同types的数据表,但他们至less有以下4个共同的列:

  • 雇员的名字
  • 他所从事的项目的名称
  • 他工作的那一天
  • 他在那一天工作的小时数。

其中一张表格代表了规划的工作时间(例如,5月5日这个员工应该在项目A上工作x小时,在项目B上工作y小时…),另一个表格表示实际工作时间,即员工实际上在一个项目上工作。

员工所从事的实际项目可能与规划的项目不同,也可能是相同的,但他可能花费了不同的时间。

作为Excel的新手,我想知道你们中的任何一位能否以最有效的方式给我提供想法。 由于我有很多行,我对使用太多循环的想法有点沉默。

谢谢!

如果这些是结构化表格(让我们说他们的工作表名称是PlannedActual )在Excel中,我会创build一个MS查询是这样的:

 SELECT Plan.Employee, Plan.Project, SUM(Plan.PlannedHrs), SUM(Act.ActualHrs),SUM(Act.ActualHrs) / SUM(Plan.PlannedHrs) FROM [Planned$] as Plan INNER JOIN [Actual$] as Act ON Plan.Project = Act.Project AND Plan.Employee=Act.Employee GROUP BY Plan.Employee, Plan.project, Act.Project, Act.Employee 

上面的查询将比较每个项目的小时数(计划与实际)。 这只是一个例子,你可以计算其他指标。

使用MS查询?:数据 – Data->From Other Sources->From Microsoft Query或使用我的SQL AddIn(只是为了创build查询): http : Data->From Other Sources->From Microsoft Query -自由/