当键列(具有参考值的列)不是最左边时查找Excel数据

时间:2011-10-25 16:00:17

标签: excel

我有一个Excel电子表格,其中包含以下列: 姓/名/电子邮件/性别/信息1 /信息2 /信息3 /信息4 这是一个包含每个人详细信息的主要spreasheet。

我有另一个电子表格,其中只包含少数人的电子邮件地址。所有这些都在主电子表格中。 列如下:姓/名/电子邮件/项目/性别/信息2 /信息3 /信息4 /信息1

有没有办法要求Excel查看主电子表格的电子邮件列,并搜索其他电子表格中提到的电子邮件。找到匹配的电子邮件后,在该主电子表格中查找该人员的数据,并将其转置到另一个电子表格中的相应列中。

我很乐意澄清任何没有多大意义的事情。

干杯!

编辑:更改标题从“根据特定值将数据从另一个Excel电子表格导入”更改为“当关键列(具有参考值的列)不在最左边时查找Excel数据”

1 个答案:

答案 0 :(得分:2)

在您的情况下,您希望在数据表上执行查找,其中键列不是最左侧的列 - 这意味着您无法使用Excel的主要竞争者进行此类查找,即VLOOKUP公式。以下方法将起作用:

如果主电子表格中的电子邮件按升序排序

使用Excel的LOOKUP功能。假设在两个电子表格中,“Surname”是A列,并且您已在问题中按正确的顺序命名所有列,则第1行中Surname的查找将为:

=LOOKUP(C1,'[Master.xls]TableName'!$C$1:$C$100,'[Master.xls]TableName'!$A$1:$A$100)

相应调整其他列。第二个参数永远不会改变;第三个采用您想要查找的值在主表中的任何列索引(即B代表名字,D代表性别等)。

请注意,这假设您的主电子表格需要查找100行数据(相应调整 - LOOKUP不适用于整列,并且您不能使用VLOOKUP,这样做。

......如果他们不是

使用INDEXMATCH功能的组合。假设与上面相同的布局,第1行中Surname的查找将是:

=INDEX([Master.xls]TableName'!$A:$H,MATCH(C1,[Master.xls]TableName'!$C:$C,0),1)

注意如果地址不匹配完全,则会失败 - 警惕大小写差异,尾随和前导空格以及不同的单元格数据格式。

两种变体的注意事项

“Master.xls”和“TableName”只是为了演示而占位符 - 它们需要被正确的文件和表名替换。创建文件间引用的最简单方法是打开两个文件并按点填充公式并单击 - Excel将为您创建正确的引用。但是,请注意,链接到公式中的另一个文件依赖于该文件不会改变其路径。