excel公式请教!! 依条件拷贝内容问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:40:16
我现在有一个是"数据明细表",表中有人名,工作时间等,每天向里面更新记录.另外按人名分出了几个表单,现希望将明细表中的人物详细资料自动拷贝到对应的该人名表单中。即是例,往明细表单中输入内容 张三,10分钟, 而对应的"张三"表单中也会出现此行内容. 因为明细表中人名较多,而且会重复出现,我想请问有没有公式可以实现.谢谢!!
vlookup() 函数不是只能取出符合条件的一行数据吗?
我需要将"明细表"中所有是名字为"张三"的数据全部拷贝过来.

谢谢大徐哥,可是如果我不是按顺序拷贝过来呢?比如说”明细表”中横向排列为日期,人名,地点.而对应的人名表单中为,人名,日期,时间,内容(不是明细表中的内容),地点.还请指教,谢谢!!
还有,IF(数据明细表!$A$2:$A$1000=$A$1,ROW($2:$1000),65536)返回值是什么?是范围吗?

你的要求是很难用vlookup实现的

假设明细表为sheet1,其中,姓名在A列,从第2行开始
假设要取数的表单在sheet2

sheet2的A1单元格用于填入要查找人的姓名:
在A2单元格中输入公式
=INDEX(SHEET1!A:A,SMALL(IF(SHEET1!$A$2:$A$1000=$A$1,ROW($2:$1000),65536),ROW(1:1)))&""
此公式为数组公式,输入完成后,必须按 ctrl + shift + enter 确认

将A2公式向右和向下复制,就得到你要的了的数据了,注意我假设了你的明细表数据有1000行,如果不够,请酌情变更!

查询表列的排列与sheet1不一致,则相应改变公式中的第一个参数即可,如原表人名在B列,想查询显示在sheet2的A列,则A2中公式的第一个参数变成:sheet1!B:B

注意,此时的公式不可以向右复制,但可以向下复制,只需将第一个数据的各列公式一一对应设置好即可!

关于 IF(数据明细表!$A$2:$A$1000=$A$1,ROW($2:$1000),65536) 的意义是:
逐一查找 数据明细表的A列中数据等于A1中的值,找到后则返回其所在的行值,找不到则返回 行值65536 请使用菜单:工具-公式审核-公式求值,可以一步步查看公式的计算步骤!

姓名 工时1 工时2 工时3 ……
老王 50 60 40 ……
老张 40 40 60 ……

表格这样做简单!
电子表格的结构设计首先要合理,不能因为会编公式而忘记根本。

用vlookup就可以实现,看看excel的帮助文件吧!