excel表格内如何用公式提取另一个表格内相同名称的不同内容

如题所述

1、提取另一区域表格内相同内容对应的内容用vlookup()是最合适的
2、vlookp(A1,D:F,3,0)有四个参数,在D:F列中查找A1内容,找到后取D:F区域中第3列的内容,而且是要完全匹配的来查找。追问

在表2中有两个相同的名称是”铅笔“,但要分别提取表1的"2B"和“3B",用vlookp这个函数好像不能实现,提取出来只能显示表1的"2B"

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-24
B1输入:
=INDEX(表1!B:B,SMALL(IF(表1!A$2:A$10=A1,ROW($2:$10)),COUNTIF(A$1:A1,A1)))
数组公式,即同时按住Ctrl+Shift+Enter结束公式编辑,会自动生成一对“{}”,向下填充。追问

$2:$10,这个数中的10为什么不能随“表1”插入行时增加呢?”表1!A$2:A$10“中的10都得行的

追答

表1!A$2:A$10是引用,会随着插入、删除行变化,但行号函数ROW内不是引用区域,只是返回行号,不会随之改变。
所以这种类型不支持插入、删除行的用法,可以将区域放大点,比如放大到1000:=INDEX(表1!B:B,SMALL(IF(表1!A$2:A$1000=A1,ROW(A$2:A$1000)),COUNTIF(A$1:A1,A1))),
要增加表1的记录时,可以直接在后面追加,表2可以按顺序、也可以不按顺序提取。

追问

谢谢你,还有个问题,就是如果“表2”名称列输入一个“表1”里面没有的名称,用了公式后会显示乱码,能否让它显示为空白而不是乱码

追答

看你截图中的版本,可以改成:
=IFERROR(INDEX(表1!B:B,SMALL(IF(表1!A$2:A$1000=A1,ROW($2:$1000)),COUNTIF(A$1:A1,A1))),"")
数组公式,即同时按住Ctrl+Shift+Enter结束公式编辑,会自动生成一对“{}”,向下填充。

本回答被提问者采纳
相似回答