第1个回答
匿名用户2019.04.15回答提问者采纳还是不太明白你想的最终的展现形式是什么...如果你就是想:通过一个单元格来选择人名,看他/她名下所有公司信息,最简单的方式就是在原表标题栏加上数据筛选即可1.选中标题栏,即姓名/公司全称行2.选择菜单项“数据”,点选“筛选”3.从“姓名”的下拉菜单中选人名即可但这种方案是极简单的,又觉得一般不会是想要这种意见,如果你一定到独立一个sheet去显示这个表格:对于名字的下拉选择处理:1.选中一个单元格(如:A1)2.从菜单项中选择:数据->数据验证->设置->验证条件.允许选择序列,验证条件.来源选择原表中的姓名列(如=Log_Source!$A2:$Axxxxxxxx可填一个很大的值。如果要整选一列会有标题存在,恐怕不合适)3.确定即可在选定的单元格生成姓名下拉表对于公司列表:如果你明知一个人名下只有一个公司,可以使用vlookup公式处理即可,公式如何使用网上一查便知如果一个人名下有多个公司,略有些麻烦:1.需要编写VBA程序,编程实现对原表的遍历分析,并输出到结果页中2.实在不想写VBA的话,a.在原表中增加一个辅助列,目的是定出一个唯一标识列,能使用vlookup公式。辅助列的内容是“名字_序号”-名字:取表中姓名列的对应行单元格,比如A2-序号:COUNTIF(A$2:Axx,Axx)目的是算从第一个item起到当前行,存在几个和当前行同姓名的item-辅助列内容:AXX&"_"&COUNTIF(A$2:AXX,AXX),拼好的唯一标识内容“名字_序号”b.在结果页,名字选择表下方,列出list-猜测一个名字下面不会有数不清的公司,所以建议给用于显示的数据行里事先埋好公式吧-每行格子里使用vlookup公式,第一个查找基准参数就用“名字_序号”,注意这里的名字要从结果页中的名字选择框里选,序号嘛,以一个人最多10个公司为例,就直接把1-10拼入把10行用公式填好。有了唯一标识,格子要显示什么内容就看vlookup的吧。-编写公式时,记着把前提条件写好,没对应数据显示为空,避免由于没有对应数据,VLOOKUP会显示error不知道这是不是你想要的,在我理解,如果你要列多条不定的数据,用VBA开发比较规范。不过我也算初学者,所以有些不太熟练,老想偷懒利用公式解决。可能别人有更好的方法,我对excel不是很专业,随便扁吧