在 Excel 中查找匹配的列

在 Excel 中查找匹配的列

我以前从未使用过 Excel,所以我需要最简单的解决方案,而且这是本周要完成的工作任务,所以我没有时间阅读大量文档。

基本上,我有两张桌子,A,并且它们都是数千行长。

我的任务描述:现在(因为我不知道更好的方法)我正在手动执行此操作:

  1. 转至行在表中
  2. 选择列中的条目B(a,b,c)同一行。
  3. 查找表中的某一行A其中列A(b)匹配行 B(一)
  4. 粘贴列的条目B(一)行数位于上一步找到的行的末尾。
  5. 对行重复+ 1。

例如:行B(cat, dog, mouse)匹配A(mammal, cat, Mr. Whiskers)。所以我会粘贴B在后面A,然后得到A(mammal, cat, Mr. Whiskers, cat, dog, mouse)

注意:我不是在合并表格。我只是通过粘贴行 A(b)(如果行 A(b) 与行 B(a) 匹配)来扩展表 A。

此外,有时条目的拼写略有不同。使用通配符搜索候选词会很有帮助。


正如描述中所说,如果我不知道如何自动执行某些操作(有的条目数)。

任何关于如何提高生产力的快速提示都会有很大帮助。

答案1

答案是,可以说,这是 Excel 中可以创建的最强大的功能之一。如果您是 Excel 新手,那么这将很难理解。

鉴于您的确切示例,您可能能够使用VLOOKUP。但我假设实际情况比您的示例要复杂一些,所以我给您提供一些可以处理几乎任何情况的东西。它是函数INDEXMATCH函数的组合。

我创建了两个表:

表 A:第 1 行(哺乳动物、雪貂、威斯克先生)

表 B:第 1 行(猫、狗、老鼠)

表 B:第 2 行(雪貂、鬣蜥、乌龟)

表B:第3行(马、牛、猪)

在表 A:列 D 中我输入了以下公式:

=INDEX(TableB!$A$1:TableB!$C$3,MATCH($B1,TableB!$A$1:TableB!$A$3,FALSE),1)

首先,让我们看一下INDEXINDEX它有 3 个参数,即要搜索的范围、所需值的行以及所需值的列。要搜索的范围由 指定TableB!$A$1:TableB!$C$3

TableB!说转到另一个名为 TableB 的工作表

列和行前面的美元符号表示“这些是绝对的,在向下(或向右、向左、向上)填充公式时不会自动增加”

最后1写的是“范围内的第一列”,在我们的例子中恰好是 A,包含猫、雪貂和马。

现在,为了获取行,我们需要使用另一个函数来MATCH匹配我们当前正在处理的行中的值。MATCH同样需要 3 个值。第一个是您要搜索的值,第二个是要搜索的单个列,最后一个是如何匹配(在本例中,我们使用 FALSE 表示“精确匹配”)。

我们想要匹配当前行的 TableA:ColumnB 中的值。因此第一个值是 $B1。这表示 B 列是绝对的,不要增加它。但是当我们向下填充时,行应该增加以匹配我们所在的任何行,因此它没有前面的美元符号。

要搜索的列是 TableB 上的 A 列并且是绝对的,因此它不会增加。

如果我们转到 TableA:ColumnE 并输入:

=INDEX(TableB!$A$1:TableB!$C$3,MATCH($B1,TableB!$A$1:TableB!$A$3,FALSE),2)

在 TableA:ColumnF 中我们输入:

=INDEX(TableB!$A$1:TableB!$C$3,MATCH($B1,TableB!$A$1:TableB!$A$3,FALSE),3)

我们得到了想要的结果。请注意,公式中唯一的区别是指定要返回的列的最终数字。

如果我们将 TableA:ColumnB 更改为“ferret”,则 Column D 更改为 ferret,Column E 更改为 iguana,Column F 更改为 turtle。

最后,选择 D、E 和 F 下第 1 行的单元格。向下拖动鼠标以覆盖所有必要的行,然后按 Ctrl+D,这将使公式填充到所有行,并增加函数中的搜索词MATCH以搜索每行 B 列中的值。

进一步阅读:

http://www.mrexcel.com/articles/excel-vlookup-index-match.php

相关内容