我以前从未使用过 Excel,所以我需要最简单的解决方案,而且这是本周要完成的工作任务,所以我没有时间阅读大量文档。
基本上,我有两张桌子,A和乙,并且它们都是数千行长。
我的任务描述:现在(因为我不知道更好的方法)我正在手动执行此操作:
- 转至行我在表中乙。
- 选择列中的条目B(a,b,c)同一行。
- 查找表中的某一行A其中列A(b)匹配行 B(一)。
- 粘贴列的条目B(一)行数我位于上一步找到的行的末尾。
- 对行重复我+ 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
。但我假设实际情况比您的示例要复杂一些,所以我给您提供一些可以处理几乎任何情况的东西。它是函数INDEX
和MATCH
函数的组合。
我创建了两个表:
表 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)
首先,让我们看一下INDEX
。INDEX
它有 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