如何使用EXCEL,根据条件在一个工作表里汇总其他工作表的数据信息

如图,“培训档案”工作簿里有3张工作表:个人培训记录、一级课程、二级课程。我如何在“个人培训记录”里,根据员工姓名,自动将“一级课程”和“二级课程”里有该员工培训记录的信息显示在相应的单元格里?

在“个人培训记录”里增加三个辅助列H-J列

H7=MATCH(C2,一级课程!B:B,)

I7=MATCH(C2,二级课程!B:B,)

分别从“一级课程”和“二级课程”里找出该员工的第一行行号


J7=IF(ISNA(H7),IF(ISNA(I7),,2),IF(ISNA(I7),1,IF(INDEX(二级课程!D:D,I7)<INDEX(一级课程!D:D,H7),2,1)))

主要是判断该员工在第一行培训日期的大小,以便按日期顺序取数


B8=IF($J7,INDEX(IF($J7=1,一级课程!D:D,二级课程!D:D),IF($J7=1,$H7,$I7)),"")

将B8公式向右复制到G8


H8=IF(J7=1,MATCH(C$2,OFFSET(一级课程!B$1,H7,,65535-H7),)+H7,H7)

I8=IF(J7=2,MATCH(C$2,OFFSET(二级课程!B$1,I7,,65535-I7),)+I7,I7)

将J7公式拉到J8


最后,将B8:J8公式向下拉即可。详见附件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-11
在个人培训记录的培训日期1(也就是B8)输入:=vlookup(c2,一级课程!b2:i100,3,false)
在个人培训记录的培训日期2(也就是B9)输入:=vlookup(c2,二级课程!b2:i100,3,false)
培训课程就把公式里的3改为4,类别为5,课时6,讲师7,成绩8.
这样只要在姓名里输入某个人的名字就会显示这个人的培训记录.如果记录超过100条,就把公式里的100改下就行了.追问

谢谢你的回复。

问题是,该员工可能参加过一级课程里的2门不同的课,也参加过二级课程里不同的课。按照你的方法,只显示一级课程里的某一门课的记录,而不是所有记录。不知道怎么改进呢?

第2个回答  2013-07-11
我也很想知道,留个标记等达人来回答
相似回答