如何使用 Excel 根据唯一列对齐两个表?

如何使用 Excel 根据唯一列对齐两个表?

我在 Excel 中有两个表格,第一个是包含一些基本信息的完整产品列表,另一个仅包含选定的产品和有关它们的更多信息,但缺少第一个表格中的某些信息。

我想合并或对齐它们,以便每个产品的所有数据都在一个表中。

例如

表格1

ID      Price      Weight
1       £2         100g
2       £3         250g
3       £3.5       70g
4       £2.75      25g
5       £0.8       50g
.
.
.

表 2

ID     Colour     Sold     Stock ...
3      Red        98       102
4      Blue       50       50
.
.

我可以使用 vlookup,但它只会返回一列的值,第二个表有超过 100 列,我想避免写那么多!任何想法都值得赞赏。

答案1

我认为对此使用 VLOOKUP 没有什么坏处;您可以根据 vlookup 索引的实际 COLUMN() 编写一个公式,例如:

假设第一个表格数据从 A1 单元格开始,数据包含在 A:E 列中,而第二个表格包含在名为“Table2”的不同工作表中的 A1 到 ZZ100 单元格中,请在第一行和第一个空闲列上输入以下公式:

=IFERROR(VLOOKUP(A1,Table2!$A$1:$ZZ$100,COLUMN()-4,FALSE),"")

注意我使用“COLUMN()-4”作为 VLOOKUP 的索引,因为表中的最后一列数据是 E,而如果是 D,我会使用“COLUMN()-3”,如果是 F,我会使用“COLUMN()-5”...我希望你理解操作机制。 然后,只需将公式粘贴到 100 个(甚至更多)后续列上即可,而无需为每一列的公式更改 vlookup 索引!


否则你甚至可以查看:数据库或者合并表向导或者强力查询为了这。


您还可以检查: 其他超级用户问题或者这里如果你想了解数据整合,最后,这个如果你想用 VBA 来解决。

答案2

有一个直接的这样做的方法VLOOKUPXLOOKUP当时还没有),尽管使用 Power Query 或 VBA 是黄金标准。尤其是对于如此大的举动。

许多函数可以使用 Excel 中所谓的“数组常量”作为其参数之一。(“一个”……只有一个……Excel 仅从单个函数参数中的任何第二/第三/等数组常量中获取第一个条目。)

数组常量的形式为: {"horse","cow",2,3567,21,"pig",8}

您可以在第一个或第三个参数中使用其中一个,VLOOKUP其中输出参数(第三个)是最常用的。

要对 K1 中的值执行操作VLOOKUP,在 A1:F500 的查找范围中找到它,并希望返回 B、E 和 F 列,您可以使用:

=VLOOKUP(K1, A1:F500, {2,5,6}, FALSE)

INDEX可能是您看到它使用最多的地方。当它出现时,通常是因为人们想要重新排序列和/或重复列。(想象一下一组紧密的列,其中任何一点数据都连续出现一次,所以可能是名字。但您的用户需要向右和向左滚动很多次,导致它离开屏幕,并且他们无法通过使用客户的名字轻松地保持通话“友好”。因此,您希望该列每 10 列左右出现一次。有很多好的理由,但也很古怪。)

如果您想要这样,VLOOKUP但需要以不同的顺序排列列并且第 2 列出现两次,则您的数组常量可能看起来像这样: {6,2,5,2} 并且VLOOKUP很乐意返回该值。

因此,您可以使用熟悉的工具来执行此操作,尽管 Power Query 无疑是最好的。

相关内容