excel里如何在表2中根据关键字提取表1中的多行数据

根据siteID区分数据,表1中每个siteID对应多行数据,要求在表2中的A2填入所需siteID,自动提取表1中对应的数据。

试了几种方法都不行,请各位大神帮忙看下
方法1失败:
=INDEX(Sheet1!H:H,SMALL(IF(Sheet1!$A$2:$A$6991=A2,ROW($2:$6991),4^8),ROW(A1)))&""
方法2失败:
=INDEX(Sheet1!H:H,SMALL(IF(Sheet1!$A$2:$A$6991=A2,ROW($2:$6991),4^8),COUNTIF(Sheet1!$A$2:$A2,A2)))

根据关键字,跨表引用,可以用vlookup函数来实现。

表一示例数据:

如上图,在做工资表时,需要有基础资料表,列示姓名、职务、底薪等基础信息。

假如在表二中,用姓名作为关键字,可以如下图所示:

B2公式为:=VLOOKUP($A$2,Sheet1!$A$2:$D$8,COLUMN(B:B),0)

C2公式为:=VLOOKUP($A$2,Sheet1!$A$2:$D$8,COLUMN(C:C),0)

D2公式为:=VLOOKUP($A$2,Sheet1!$A$2:$D$8,COLUMN(D:D),0)

该函数以姓名作为关键字,在表一$A$2:$D$8区域中查找,然后分别返回该区域的第2、3、4列,并精确匹配。其中COLUMN函数用来生成该函数的第三参数,引用方式为相对引用,向右拖动公式时,可以自动改变参数数值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-07
最好有个截图,分析原因。
可能出错原因:
方法1和方法2,下拉后公式取值序号错误,修改一下公式:(应该以操作表的A列计算序号,不能用引用表计算)
=INDEX(Sheet1!H:H,SMALL(IF(Sheet1!A$2:A$6991=A2,ROW($2:$6991),4^8),COUNTIF(A$2:A2,A2)))本回答被提问者和网友采纳
第2个回答  2014-11-07
如果不是必须用公式的话,就用高级筛选
相似回答